我到处搜索后也没能找到针对我的问题的具体答案。
在 Windows 上有一个名为的应用程序FTP 盒它将每隔设定的时间段自动同步本地文件夹和 ftp 文件夹。
我的问题是,如何使用 Ubuntu 实现同样的效果?最主要的是我不想手动完成。它需要是一个完全自动化的过程,不需要人工干预(如果这算作人工干预,显然我必须进行设置,哈哈)。
非常感谢您提供的帮助。
-爱德华
答案1
第一个解决方案
安装lftp
sudo apt-get install lftp
之后创建脚本
#!/bin/bash
HOST='mysite.com'
USER='myuser'
PASS='myuser'
TARGETFOLDER='/new'
SOURCEFOLDER='/home/myuser/backups'
lftp -f "
open $HOST
user $USER $PASS
lcd $SOURCEFOLDER
mirror --reverse --delete --verbose $SOURCEFOLDER $TARGETFOLDER
bye
"
将其保存到有名称的某个地方upload.sh
。授予其+x
权限。
sudo chmod +x /path_to_script/upload.sh
设置crontab
为每x
隔一段时间运行此命令
编辑 crontab 运行
crontab -e
每 5 分钟运行一次命令的代码是
*/5 * * * * /path_to_script/upload.sh
每小时
0 */1 * * * /path_to_script/upload.sh
凌晨 4 点跑步
0 4 * * * /path_to_script/upload.sh
解决方案二
创建一个名为的小而简单的脚本,lftp-script
其LFTP
内容如下:
open ftp://username:[email protected]
mirror --reverse -v --only-newer /home/local/path/ /website.com/public_html/
最后,您可以运行LFTP
并开始同步。像我写的那样设置 crontab,但输入命令
lftp -f /path/to/lftp-script
类似这样的
*/5 * * * * lftp -f /path/to/lftp-script
解决方案三
安装curlftpfs
sudo apt-get install curlftpfs
为了在本地挂载 ftp,您需要运行这些命令来创建将要同步的目录
mkdir hostr
将远程 ftp 目录挂载到本地
sudo curlftpfs -o allow_other ftp://user:[email protected] host
用户:密码是登录 ftp 账户的用户名和密码。
您可以使用以下行来添加自动安装curlftpfs
:fstab
curlftpfs#user:[email protected] /mnt/host fuse rw,uid=500,user,noauto 0 0