调用 URL 并保存文件的 CRON 的 Shell 脚本

0 command-line bash scripts cron

我在浏览器上手动输入一个 URL,该 URL 调用具有 GET 功能的页面,该功能直接提示我保存文件。我想在脚本上使用 cron 作业自动执行以下操作:

  • 调用网址
  • 将文件保存在特定文件夹中

谁能帮忙写个脚本?我可以私下提供 URL 以测试行为。

Pat*_*icz 5

无需使用用户界面(文本或 GUI)即可下载 URL 的一种方法是将wget所有需要的参数(如您所愿)用作 cron 作业。

关于 wget

单个 URL 的示例(输出名称与时间戳合并,以丰富答案,可以是静态名称):

 wget URL -O "/home/uname/dirn/`date +%y%m%d-%H%M%S`-n.htm" -b
 wget URL -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-n.htm" -b #in crontab
Run Code Online (Sandbox Code Playgroud)

注意:在 cron 中,您必须使用“\%”(如上面的第二行)而不是仅使用“%”(如上面的第一行),因为 cron 解释了“百分比”字符。

其中:分解为:-O "/home..../date...-theRestOfTheName"

  • 绝对路径(cron 可能配置了自己的路径,所以从实用的角度来看,在每个命令中指定您感兴趣的路径通常是有利的)

  • 即时执行,date输出配置为人类可读的时间戳

  • 目标文件名的其余部分

-b 要求 wget 在后台工作,登录系统日志。

您可以选择使用文件 ( -i filename)中的 URL 列表。您还可以使用 wget 及其联机帮助页 ( man wget) - 它相对较短,可以为您提供很多想法。

关于 cron

请注意,cron 假设您的机器始终处于开启状态:cron 不会在机器关闭时赶上作业。以当前用户身份编辑 cron

crontab -e
Run Code Online (Sandbox Code Playgroud)

添加一行指定命令执行频率的配置(简单指令在 crontab 编辑器的最顶层显示为注释,请阅读)。对于周日每 5 分钟运行一次,您可以这样写:

# m  h  dom mon dow   command
*/5  *   *   *   0    wget google.com -O "/home/uname/dirn/`date +\%y\%m\%d-\%H\%M\%S`-ind3.htm" -b
Run Code Online (Sandbox Code Playgroud)