Bash 下载文件的 cronjob 问题

Bash cronjob issue for downloading files

我知道如何使用下面提到的脚本一次性从 SFTP 服务器下载所有样本。

#download.sh
sshpass -p password sftp username@X.X.X.X:/Files/2017-05-05-00.zip  ~/local_machine/2017-05-05/
sshpass -p password sftp username@X.X.X.X:/Files/2017-05-05-01.zip  ~/local_machine/2017-05-05/
sshpass -p password sftp username@X.X.X.X:/Files/2017-05-05-02.zip  ~/local_machine/2017-05-05/
.................................................................
sshpass -p password sftp username@X.X.X.X:/Files/2017-05-05-23.zip  ~/local_machine/2017-05-05

而不是 运行 一次下载所有文件的脚本 ( download.sh ),我怎样才能每小时下载一次文件。例如,在上面的脚本中

download.sh 中的第一行(2017-05-05-00.zip 的下载)需要发生在 7AM 并且这仅用于查找 2017-05 的文件-05-00.zip 其余的行不应该被抬头看。

download.sh 中的第二行(2017-05-05-01.zip 的下载)需要发生在 8AM 等等,直到第 23 个文件。

当一个文件被执行时,None 的其他文件不应该被查找。

不确定如何使用 bash cron 作业执行此操作,请提供有关如何执行此操作的任何建议?

用 GNU 日期试试这个 cronjob:

0 * * * * sshpass -p password sftp username@X.X.X.X:/Files/$(date +"\%Y-\%m-\%d-\%H" -d "-7 hours").zip $HOME/local_machine/$(date +"\%Y-\%m-\%d" -d "-7 hours")/"

通常需要在 cronjob 中使用 \ 转义 %