㈠ linux ftp端口怎么设置
# 匿名用户配置
anonymous_enable=YES # 是否允许匿名ftp,如否则选择NO
anon_upload_enable=YES # 匿名用户是否能上传
anon_mkdir_write_enable=YES # 匿名用户是否能创建目录
anon_other_write_enable=YES # 修改文件名和删除文件
# 本地用户配置
local_enable=YES # 是否允许本地用户登录
local_umask=022 # umask 默认755
write_enable=YES
chroot_local_user=YES # 本地用户禁锢在宿主目录中
chroot_list_enable=YES # 是否将系统用户限止在自己的home目录下
chroot_list_file=/etc/vsftpd.chroot_list # 列出的是不chroot的用户的列表
chown_upload=YES # 是否改变上传文件的属主
chown_username=username # 如果是需要输入一个系统用户名
userlist_enable=YES
userlist_deny=NO
deny_email_enable=YES # 是否允许禁止匿名用户使用某些邮件地址
banned_email_file=/etc/vsftpd.banned_emails # 禁止邮件地址的文件路径
ftpd_banner=Welcome to chenlf FTP service. # 定制欢迎信息
dirmessage_enable=YES # 是否显示目录说明文件, 需要收工创建.message文件
message_file= # 设置访问一个目录时获得的目录信息文件的文件名,默认是.message
xferlog_enable=YES # 是否记录ftp传输过程
xferlog_file=/var/log/vsftpd.log # ftp传输日志的路径和名字
xferlog_std_format=YES # 是否使用标准的ftp xferlog模式
ascii_upload_enable=YES # 是否使用ascii码方式上传文件
ascii_download_enable=YES # 是否使用ascii码方式下载文件
connect_from_port_20=YES # 是否确信端口传输来自20(ftp-data)
nopriv_user=ftpsecure # 运行vsftpd需要的非特权系统用户默认是nobody
async_abor_enable=YES # 是否允许运行特殊的ftp命令async ABOR.
# FTP服务器的资源限制
idle_session_timeout=600 # 设置session超时时间
data_connection_timeout=120 # 设置数据传输超时时间
max_clients=50 # 用户最大连接数 默认是0不限止
max_per_ip=5 # 每个IP地址最大连接数
anon_max_rate=102400 # 匿名的下载速度 KB
local_max_rate=102400 # 普通用户的下载速度 KB
㈡ 有没有nodejs写的ftp server
如果电脑没有安装nodejs的同学可以先到node官方下载并安装好node程序。
安装好nodejs后验证一下是否安装成功!如果出现则表明node已经承装安装上去了!
2
安装好node之后打开cmd 输入 npm install anywhere -g 安装anywhere ,然后等待直到出现以下界面。
3
以上两个步骤都就绪以后,万事俱备,只欠东风啦!在cmd页面 找到你想搭建服务器的路径
然后浏览器就自动打开本地访问网址,一个简单的node服务器就这样被我们搭建好啦
㈢ 如何得到某个文件的最后修改人
xml:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<Messages>
<sendName>sendUsers</sendName>
<receiveName>snake</receiveName>
<date>2007-12-04 12:20:00</date>
<status>0</status>
<message>this is Content</message>
</Messages>
</users>
java:
package com.lianxi.DAO;
import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class UpdateXml {
public static boolean doc2XmlFile(Document document,String filename)
{
boolean flag = true;
try
{
/** 将document中的内容写入文件中 */
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
/** 编码 */
//transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(new File(filename));
transformer.transform(source, result);
}catch(Exception ex)
{
flag = false;
ex.printStackTrace();
}
return flag;
}
public static Document load(String filename)
{
Document document = null;
try
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
document=builder.parse(new File(filename));
document.normalize();
}
catch (Exception ex){
ex.printStackTrace();
}
return document;
}
/**
* 演示修改文件的具体某个节点的值
*/
public static void xmlUpdateDemo()
{
Document document = load("c://Message.xml");
Node root=document.getDocumentElement();
/** 如果root有子元素 */
if(root.hasChildNodes())
{
/** ftpnodes */
NodeList ftpnodes = root.getChildNodes();
/** 循环取得ftp所有节点 */
for (int i=0;i<ftpnodes.getLength();i++)
{
NodeList ftplist = ftpnodes.item(i).getChildNodes();
for (int k=0;k<ftplist.getLength();k++)
{
Node subnode = ftplist.item(k);
/** 删除ftp-chn节点 */
// if (subnode.getNodeType()==Node.ELEMENT_NODE&&subnode.getNodeName()=="ftp-chn")
// {
// ftpnodes.item(i).removeChild(subnode);
// }
/** 修改ftp-host的值为 192.168.0.1 */
if (subnode.getNodeType()==Node.ELEMENT_NODE&&subnode.getNodeName()=="status")
{
subnode.getFirstChild().setNodeValue("1");
}
}
}
}
doc2XmlFile(document,"c://Message.xml");
}
public static void main(String args[])throws Exception
{
UpdateXml.xmlUpdateDemo();
}
}
㈣ ftp无法连接服务器是什么原因,提示EAI_NONAME - Neither nodename nor servname provided, or not known
我也出现过这种情况 无法排除 最后是重启服务器 本地重新拨号(更换IP)就可以了……
㈤ nodejs怎么实现ftp远程目录的遍历
不知道支不支持ftp协议啊。要是支持的话直接连接就好了。应该支持。冰晶V8。
㈥ ftp服务器怎么搭建可以用云帮手吗好不好
1.你可以手动安装。
先是在云服务器上安装ftp环境,完成后。在个人pc上,安装一个ftp软件方便远程上传下载文件。
2.借助安装工具软件。
你也可以用云帮手安装部署环境,和实现文件上传和下载,还可以集中管理一台或多台云主机。
㈦ 如何控制AIX中目录的ftp访问权限
当我们想要将一个目录设置为ftp只读或ftp只写时,我们可以借助/etc/ftpaccess.ctl文件来实现这种权限控制。
一、设置一个目录为ftp只读
1. 编辑/etc/ftpaccess.ctl,加入如下一行:
readonly: /test
2. ftp连接服务器进行读取传输,成功
HA_node2@/> ftp 172.16.18.13
Connected to 172.16.18.13.
220 DumpServer FTP server (Version 4.2 Fri Feb 3 22:13:23 CST 2006) ready.
Name (172.16.18.13:root): root
331 Password required for root.
Password:
230-Last unsuccessful login: Tue May 13 08:44:37 2008 on /dev/pts/1 from 9.181.50.139
230-Last login: Tue May 13 10:45:06 2008 on ftp from ::ffff:9.181.50.246
230 User root logged in.
ftp> cd /test
250 CWD command successful.
ftp> lcd /test
Local directory now /test
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 29472
-rw-r--r-- 1 root system 7539356 Apr 24 19:42 trace.r
-rw-rw-rw- 1 root system 880640 Apr 24 19:41 trace.raw
-rw-rw-rw- 1 root system 1158232 Apr 24 19:41 trace.raw-0
-rw-rw-rw- 1 root system 1059928 Apr 24 19:41 trace.raw-2
-rw-rw-rw- 1 root system 1050952 Apr 24 19:41 trace.raw-3
-rw-rw-rw- 1 root system 1195440 Apr 24 19:41 trace.raw-4
-rw-rw-rw- 1 root system 2196288 Apr 24 19:41 trace.raw-5
226 Transfer complete.
ftp> bin
200 Type set to I.
ftp> get trace.raw
200 PORT command successful.
150 Opening data connection for trace.raw (880640 bytes).
226 Transfer complete.
880852 bytes received in 0.08342 seconds (1.031e+04 Kbytes/s)
local: trace.raw remote: trace.raw
3.进行写入传输,则遭遇报错
ftp> bin
200 Type set to I.
ftp> put trace.raw-1
200 PORT command successful.
550 Write access denied
二、设置一个目录为ftp只写
1. 编辑/etc/ftpaccess.ctl,加入如下一行:
writeonly: /test
2. ftp连接服务器进行读取传输,则遭遇报错
HA_node2@/> ftp 172.16.18.13
Connected to 172.16.18.13.
220 DumpServer FTP server (Version 4.2 Fri Feb 3 22:13:23 CST 2006) ready.
Name (172.16.18.13:root): root
331 Password required for root.
Password:
230-Last unsuccessful login: Tue May 13 08:44:37 2008 on /dev/pts/1 from 9.181.50.139
230-Last login: Tue May 13 15:45:37 2008 on ftp from ::ffff:172.16.18.11
230 User root logged in.
ftp> cd /test
250 CWD command successful.
ftp> lcd /test
Local directory now /test
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 29472
-rw-r--r-- 1 root system 7539356 Apr 24 19:42 trace.r
-rw-rw-rw- 1 root system 880640 Apr 24 19:41 trace.raw
-rw-rw-rw- 1 root system 1158232 Apr 24 19:41 trace.raw-0
-rw-rw-rw- 1 root system 1059928 Apr 24 19:41 trace.raw-2
-rw-rw-rw- 1 root system 1050952 Apr 24 19:41 trace.raw-3
-rw-rw-rw- 1 root system 1195440 Apr 24 19:41 trace.raw-4
-rw-rw-rw- 1 root system 2196288 Apr 24 19:41 trace.raw-5
226 Transfer complete.
ftp> bin
200 Type set to I.
ftp> get trace.raw-2
200 PORT command successful.
550 Read access denied
3.进行写入传输,成功
ftp> bin
200 Type set to I.
ftp> put trace.raw-1
200 PORT command successful.
150 Opening data connection for trace.raw-1.
226 Transfer complete.
880640 bytes sent in 0.07938 seconds (1.083e+04 Kbytes/s)
local: trace.raw-1 remote: trace.raw-1
ftp> dir
200 PORT command successful.
150 Opening data connection for /bin/ls.
total 31192
-rw-r--r-- 1 root system 7539356 Apr 24 19:42 trace.r
-rw-rw-rw- 1 root system 880640 Apr 24 19:41 trace.raw
-rw-rw-rw- 1 root system 1158232 Apr 24 19:41 trace.raw-0
-rw-r----- 1 root system 880640 May 13 15:53 trace.raw-1
-rw-rw-rw- 1 root system 1059928 Apr 24 19:41 trace.raw-2
-rw-rw-rw- 1 root system 1050952 Apr 24 19:41 trace.raw-3
-rw-rw-rw- 1 root system 1195440 Apr 24 19:41 trace.raw-4
-rw-rw-rw- 1 root system 2196288 Apr 24 19:41 trace.raw-5
226 Transfer complete.
㈧ 如何使用WebSphere Message Broker定制FTP
Java 解决方案
Java™ 解决方案基于 Apache Commons Net 包。如 FTPClient 中的 javadoc 所述,首先连接到 FTP 服务器,使用您的用户名和密码登录,然后使用 get 或 put 命令。以下是一个样例实现。
示例 2. 使用 Apache Commons Net 的FTP 的样例实现
package fileTransferProtocol;
import org.apache.commons.net.ftp.*;
import java.io.*;
public class FileTransferProtocol {
public static void main (String [ ] args) {
String serverName ="my.zos.mainframe" ;
String userName ="userid" ;
String password ="********" ;
FTPClient ftp = new FTPClient() ;
//Connect to the server
try { ftp.connect (serverName) ;
String replyText =ftp.getReplyString() ;
System.out.println (replyText) ;
}
catch (Exception e) {
e.printStackTrace () ;
}
//Login to the server
try { ftp.login (userName, password) ;
String replyText = ftp.getReplyString() ;
System.out.println (replyText);
} catch (Exception e) {
e.printStackTrace();
}
//Tell server that the file will have JCL records
try { ftp.site ("RECFM=FB LRECL=140") ;
String replyText = ftp.getReplyString() ;
System.out.println (replyText) ;
}
catch (Exception e) {
e.printStackTrace() ;
}
//Submit the job from the text file.
try { FileInputStream inputStream = new FileInputStream ("/my/source/file") ;
ftp.storeFile (serverName,inputStream) ;
String replyText = ftp.getReplyString() ;
System.out.println (replyText) ;
}
catch (Exception e) {
e.printStackTrace() ;
}
//Quit the server
try { ftp.quit() ;
}
catch (Exception e) {
e.printStackTrace() ;
}
}
}
使用 JavaCompute 节点
前面的小节展示了将文件从本地发送至远程文件系统的实现样例。这一节会介绍如何在 Message Broker JavaCompute 节点中包装此实现。
Message Broker 信息中心有大量的 JavaCompute 节点资料。但有一点需要强调:前面介绍的样例实现要求 Commons Net JAR 文件在CLASSPATH 上是可用的。同样的,使用 JavaCompute 节点时,您需要在外部 JAR 文件中添加依赖关系。有关更多信息,请参阅 Message Broker 信息中心的 添加 Java 代码依赖项 。
JavaCompute 节点的 Java 类的类型
Message Broker Toolkit 提供了基于 JavaCompute 节点预期功能的类模板。有关以下所列模板的更多信息,请参阅 Message Broker 信息中心的Creating Java code for a JavaCompute node。
过滤器 - 过滤传入的信息
修改 - 修改传入的信息
创建 - 创建新的信息
模板的选择取决于特定的信息流,例如,传入的信息在文件转换后是否会传播到后续节点,或者完成文件转换后是否不会再有进一步的动作,以至于没有信息需要传播。
Java 类的描述
这一节将描述用来定制 FTP 的 Java 类。
FTP 会话的基本输入
通过 FTP 转换文件所需的重要项目为:
服务器主机名或 IP 地址
用户 ID 和密码
源文件和目标文件
对于利用 FTPClient 将数据从 Apache Commons Net 传送到实际传输文件的类,此信息应该是可用的。本文中显示的类接受上述值作为java.util.Properties 对象,或者将它作为 “名称-值” 对的文件名。在使用 Properties 对象时,您有动态设置这些值的优势。有了这个文件,就不再需要硬编码值。同时,通过设置适当的访问控制,只能通过 broker 运行所用的 ID 来读取该文件。
Properties 对象
由于不同的 FTP 会话可能需要不同的自定义命令,Properties 对象不必一直是同一个对象。本文描述了一个实现,其中需要通过指定数据集控制块(DCB)和一些空间值,使用 FTP 会话将某个文件提供给 z/OS 服务器。Properties 对象的名称-值对如下所示:
示例 3. Properties 对象的名称 - 值对样例
INTF1.server=big.blue.server
INTF1.userid=USERID01
INTF1.password=HeyThere
INTF1.targetDSN='A.DUMMY.GDG(+1)'
INTF1.targetDSN.RECFM=FB
INTF1.targetDSN.LRECL=100
INTF1.targetDSN.BLKSIZE=27900
INTF1.targetDSN.pri=10
INTF1.targetDSN.sec=5
INTF1.targetDSN.unit=CYL
调用
以下是调用自定义 FTP 类的 JavaCompute 节点的样例:
示例 4. 调用自定义节点类的 JavaCompute 节点的代码样例
package customFTP;
import com.ibm.broker.javacompute.MbJavaComputeNode;
import com.ibm.broker.plugin.*;
public class FTPMessageFlow_JC01 extends MbJavaComputeNode {
public void evaluate(MbMessageAssembly inAssembly) throws MbException {
MbOutputTerminal out = getOutputTerminal("out");
MbMessage inMessage = inAssembly.getMessage();
MbMessage outMessage = new MbMessage(inMessage);
MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly,outMessage);
try {
/**
* All logic for this JavaCompute node.
*
* Build Properties object here OR
* Provide file name here
*
* Invoke custom FTP here
*
*/
} catch (Exception e) {
/**
* Handle exceptions
*/
} finally {
outMessage.clearMessage();
}
}
如以上代码所示,我们要先执行所需的业务逻辑,然后准备 Properties 对象,或者传递文件名,以便调用自定义 FTP 类。
㈨ 如何用nodejs 调用ftp上传多个文件
单个的实现
fs.readFile(req.files['file'].path, function(err, data){
fs.writeFile(newPath, data, function(err){
//上传成功
})
});
㈩ nodejs 如何部署到服务器上
跟你在本地开发是相同的。
1、安装指定版本的node.js(服务器基本软件的安装)
2、上传代码到服务器(可以通过ftp、ssh、git等方式)
3、安装项目依赖的模块
>npminstall
4、启动应用(也可以通过forever、pm2等工具进行管理)
>node./www/bin
当然,如果你深谙运维之道,可以直接通过docker等方案将运行环境容容器化。
基本的Linux运维知识的话可以参考linuxprobe.com。
还有几个需要注意的点:
1、运行权限:注意做好应用之间的隔离(使用低权限用户、文件系统隔离等),避免应用崩溃导致系统宕机等风险
2、80端口:通过nginx等进行反向代理,应用本身占用1024后的端口(无需root权限)