我想创建一个脚本
- 必须每分钟使用 CRON 运行一次(问:每分钟运行一次 CRON FTP/wget 是否明智?)
比较本地目录和远程目录(问:我该使用 FTP 还是 wget,如何创建
从远程目录获取所有较新/更改的 XML 文件(问:如何将其放入一个变量中,以便稍后在循环中使用)
一旦此过程失败,立即通过邮件通知管理员
- 将较新/已更改的文件_this_date 复制到目录_this_date
是否可以或建议将脚本分为 config.sh、ftp.sh、copy.sh、mail.sh。最后我必须使用 PHP 处理 XML 文件
我知道有很多问题(有些部分已经解决了),但现在我想得到一个
- 1)可行性/分析意见
- 2)如何获取$variable = (ls 较新/更改的文件?)
答案1
如果你使用 rsync 而不是 wget,那么事情会简单得多,因为 rsync 的设计初衷就是为了满足你在其他任务中的需求。你可以使用:
rsync -raz -e ssh [email protected]:/root/dir-to-sync
/root/dir-where-files-go
要检查进程是否失败,只需检查退出代码$?
,如果此变量的值不是零“0”,则表示出现了问题,您可以标记电子邮件通信
要复制已更改的文件,请使用时间戳来了解同步之前的最后一个文件,然后就知道哪些是新文件。
您可以使用类似的方法为您的目录创建 ISO 格式的基于日期的掩码newdirmask=$(date +%Y%m%d''%H%M%S)
,并在稍后使用mkdir
它mkdir /home/$newdirmask
。
答案2
您可以安装 cygwin (http://www.cygwin.com/) 并在 Windows 环境中拥有 rsync 的所有功能。不要害怕 Cygwin 网站的外观和感觉 Cygwin 是众所周知的软件,并且已经经过多次生产测试。