我需要将目录 /home/test 的全部内容上传到我的 ftp 服务器的特定文件夹中。 然后我将通过 cron 每小时安排一次脚本。有什么例子吗?
注意:考虑到我使用的是 Netgear ReadyNAS Duo(一个 Debian 盒子),我无法安装 lftp 或类似程序,只能安装标准命令 :)
答案1
在网上找到了这个具有高质量文档的 bash 脚本:
#!/bin/bash
HOST=ftp.server.com #This is the FTP servers host or IP address.
USER=ftpuser #This is the FTP user that has access to the server.
PASS=password #This is the password for the FTP user.
# Call 1. Uses the ftp command with the -inv switches.
#-i turns off interactive prompting.
#-n Restrains FTP from attempting the auto-login feature.
#-v enables verbose and progress.
ftp -inv $HOST << EOF
# Call 2. Here the login credentials are supplied by calling the variables.
user $USER $PASS
# Call 3. Here you will change to the directory where you want to put or get
cd /path/to/file
# Call4. Here you will tell FTP to put or get the file.
put test.txt
# End FTP Connection
bye
EOF
配置并保存.sh脚本后,使其可执行:
chmod +x ftpscript.sh
最后,配置你的 cronjob
答案2
一行命令:
ftp -in -u ftp://username:password@servername/path/to/ localfile
答案3
curl
能够将文件上传到 FTP 服务器。
curl -T "$FILE(s)" -u $USERNAME:$PASSWORD $SERVER/$DIR/
您还可以使用 glob 模式$FILE
。
答案4
如果安装了 ssh 并将其配置为允许文件传输,则可以使用scp
。
如果不是netcat
或者rsync
可能是一个选择。