【问题标题】:Cron job to SFTP files in a directoryCron作业在目录中的SFTP文件
【发布时间】:2013-08-11 21:01:38
【问题描述】:

场景:我需要创建一个 cron 作业来扫描目录并将每个文件 sftps 到另一台机器

  • bash 脚本:/home/user/sendFiles.sh
  • cron 间隔:1 分钟
  • 目录:/home/user/myfiles
  • sftp 目的地:10.10.10.123

创建 cron 作业

crontab -u user 1 * * * /home/user/sendFiles.sh

创建脚本

#!/bin/bash
/usr/bin/scp -r user@10.10.10.123:/home/user/myfiles .
#REMOVE FILES AFTER ALL HAVE BEEN SENT
rm -rf * 

问题:不确定该 cron 选项卡是否正确或如何使用 cron 选项卡 sftp 整个目录

【问题讨论】:

    标签: crontab sftp


    【解决方案1】:

    如果要在 cronjob 上执行,我假设它是为了同步目录。

    在这种情况下,我会使用rdiff-backup 进行增量备份。这样,只有发生变化的东西才会被转移。

    此系统将使用 ssh 传输数据,但使用 rdiff-backup 而不是普通的 scp。这样做的主要好处是速度;仅传输已更改的部分会更快。

    这是使用 rdiff-backup 通过 ssh 进行复制的命令:

    rdiff-backup /some/local-dir hostname.net::/whatever/remote-dir
    

    将其添加到 cronjob,确保执行 rdiff 备份的用户拥有 ssh 密钥,因此不需要密码。

    关于 ssh 密钥: 在此处阅读有关 ssh 密钥的信息:http://www.linuxproblem.org/art_9.html 设置后,尝试执行常规 ssh 以查看是否可以不使用密码登录。)

    类似这样的:

    * * * * * rdiff-backup /some/local-dir hostname.net::/whatever/remote-dir
    

    将每分钟复制一次。 (您的示例,1 * * * * 将在每个小时的每 第一 分钟执行一次;也就是说,每小时一次,而不是每分钟一次)

    请记住,如果传输量很大且尚未完成传输,则可能会导致问题。但我想你想要的是传输不太大的文件。或者说你的网速很大。否则,改为使用 */5 * * * * 将其更改为每 5 分钟传输一次。

    最后,在此处阅读有关 rdiff-backup 的更多信息:http://www.nongnu.org/rdiff-backup/examples.html

    【讨论】:

    • rdiff-backup 也传输删除吗?我在 cronjob 上使用sftp 进行单向同步,而不是完全同步(实际上,我正在备份备份文件),但我想确保不会发生灾难性的清除。 t 传播。
    • 只有当你有 ssh 访问另一台机器时才好...
    • @Michel 是的。问题是关于sftp,它是通过ssh 的ftp,所以它假设ssh 访问。
    【解决方案2】:

    rdiff-backup 是个不错的选择,还有rsync

    rsync -az user@10.10.10.123:/home/user/myfiles .
    

    我注意到您也在删除文件,这仅仅是因为您不想重新复制它们吗? rsync 只会复制更新的文件。

    您可能还对进行双向同步的unison 感兴趣

    【讨论】:

      【解决方案3】:

      这些都是很好的答案;如果您坚持使用scp,您可能需要对您的脚本稍作改动:

      #!/bin/bash
      /usr/bin/scp -r user@10.10.10.123:/home/user/myfiles .
      #REMOVE FILES AFTER ALL HAVE BEEN SENT
      cd /home/user/myfiles   # make sure you're in the right directory before rm
      rm -rf * 
      

      【讨论】:

        猜你喜欢
        • 2013-08-14
        • 1970-01-01
        • 1970-01-01
        • 2012-06-03
        • 1970-01-01
        • 1970-01-01
        • 2019-07-14
        • 1970-01-01
        • 2011-03-09
        相关资源
        最近更新 更多