1

我知道如何使用下面提到的脚本一次从 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)来一次下载所有文件,我怎样才能每隔一小时下载一次文件。例如,在上面的脚本上

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

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

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

不确定如何使用 bash cron 作业来执行此操作,请问有什么建议吗?

4

1 回答 1

4

用 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 中%使用 a进行转义。\

于 2017-05-09T11:26:04.257 回答