用cron传输文件?

Exp*_*cto 2 cron

我试图弄清楚是否可以设置一个cron作业,将所有文件从我的服务器上的一个文件夹传输到另一个文件夹,然后从另一个文件夹中取出一定数量的文件(随机选择的文件)并将其放入原始文件夹.如果有任何关于如何做到的提示,我根本没有使用cron的经验,我只是不想用ftp登录并手动进行传输.

Eri*_*erg 5

Cron非常简单,它所做的只是在一天的指定时间运行您选择的命令.

在您的情况下,您可能希望编写一个使用rsync,scp或ftp来传输文件的shell脚本,确保成功退出(检查退出代码,传输,存储在$?变量中),然后移动文件集进入原始文件夹.

我会通过ssh密钥使用rsync和无密码身份验证.这对安全性有好处,如果你愿意,你甚至可以限制接收端只允许ssh密钥运行rsync的服务器端.

如果此脚本名为/opt/scripts/myscript.sh,并且每10分钟运行一次,请将以下内容添加到crontab(运行crontab -e以编辑crontab):

*/10****/opt/scripts/myscript.sh

请记住,shell中可用的环境变量与cronjob运行时可用的环境变量不同,因此PATH等可能不同.这通常会导致cron作业在运行它们的前几次失败(参见我关于cron作业的法律:http://efod.se/blog/archive/2010/02/19/forsbergs-law-on-cron-jobs: - )).来自cron的任何输出都通过邮件发送给运行cron作业的用户,这有助于调试.将消息写入/ tmp /中的某个文件的简单调试通常也是让cron作业运行的一种方法.

在许多情况下,将cron作业作为特殊用户运行是有意义的.不要以root身份运行您的cron作业,除非他们绝对必须具有root访问权限,最好以仅在文件系统中具有有限权限的特殊用户身份运行.