我选择了一个涉及Ubuntu Web服务器的小项目,该项目使用Rsync来拾取内容(图像和CSV文件以导入到mySQL db中),该项目每隔10分钟运行一次以进行平滑更新。

直到最近,它已经运行了好几年。由于我怀疑以前的设置可能不是设置最完善和最安全的选项,因此,我很感谢经验丰富的人员就如何重做提供了一些建议。

目前,最近停止工作的系统的运行方式如下:

在网络服务器上,此行在crontab中运行:

*/10 *  * * *   root    /home/a/b/abc/web/rsync.script


rsync.script文件的内容如下:

#! /bin/sh
# This script updates the website with the latest CSV by RSYNC and imports the CSV into the MySQL database.
# Now also imports the product images from the office server (added 26/10/2011).

# Step 1 - clearing away the previous data
rm /home/a/b/abc/web/public_html/import/csvdata/*

# Step 2 - getting the new CSV and updating the product image directory
rsync -a office.address.here::abc /home/a/b/abc/web/public_html/import

# Step 3 - chown/chmod what we have imported
chown -R 2022:sites /home/a/b/abc/web/public_html/import
chmod -R 744 /home/a/b/abc/web/public_html/import/*
chmod 0755 /home/a/b/abc/web/public_html/import/csvdata
chmod 0755 /home/a/b/abc/web/public_html/import/images

# Step 4 - run the PHP to import the new CSV into the database
cd /home/a/b/abc/web/public_html
php /home/a/b/abc/web/public_html/csv-import.php

exit 0


我已经确定损坏的部分是上面的第2节。尝试从Web服务器命令行手动运行时,会出现以下结果:

admin @ webserver:/ home / a / b / abc / web#sudo rsync -a office.address.here::abc / home / a / b / abc / web / public_html / import
    @ERROR:无法打开锁定文件
    rsync错误:在main.c(1522)[receiver = 3.0.4]下启动客户端-服务器协议(代码5)时出错。

Web服务器上没有/etc/rsync.conf或/etc/rsyncd.conf文件。考虑到本示例中的使用方法,我不确定最初是否有人或是否需要它。

在办公室计算机上,这是一个Debian盒子,我们有以下/etc/rsync.conf文件:

max connections = 2
log file = /var/log/rsync.log
timeout = 500

[abc]
  comment = ABC RSync
  path = /home/abc/samba_websync/websync/
  read only = no
  list = yes
  uid = abc
  gid = abc
  #auth users = mongrel
  list = yes
  #hosts allow = 127.0.0.0/8 192.168.0.0/24
  #secrets file = /etc/rsync.secrets


令我担心的是,显然在整个通信过程中没有安全措施。

我花了整整一天时间阅读许多howto和教程,并且坦白地说,如果有的话,它会变得更加混乱。我确信我不想修复当前系统。我想实施一个更安全,更好的系统。新系统需要:

1-仅同步在办公室机器上所做的更改,因为有很多产品的图像文件,我们不想每10分钟转移一次!
2-通信需要无缝对话,而无需手动输入密码。

Web服务器和办公计算机距离一定距离,并且不在LAN内。他们通过Internet进行通信。

我愿意采用最佳,高效的方法来实现这一目标!

先感谢您。 :)

我可以同时访问两台计算机

最佳答案

您看过Unison吗?

我发现它相对容易设置和维护,并提供了许多有用的功能。

与Rsync不同,Unison会更新两个副本,但您可以使用-nocreation-noupdate将其单向。
要将其与crontab一起使用,请参见-batch选项。

关于linux - 从crontab设置自动rsync以便通过互联网将内容从一台linux机器同步到另一台linux机器的 final方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25542513/

10-14 23:54