如何自动同步本地文件夹的内容和 ftp 文件夹的内容?

如何自动同步本地文件夹的内容和 ftp 文件夹的内容?

我到处搜索后也没能找到针对我的问题的具体答案。

在 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-scriptLFTP内容如下:

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 账户的用户名和密码。

您可以使用以下行来添加自动安装curlftpfsfstab

curlftpfs#user:[email protected] /mnt/host fuse rw,uid=500,user,noauto 0 0

相关内容