0 command-line bash scripts cron
我在浏览器上手动输入一个 URL,该 URL 调用具有 GET 功能的页面,该功能直接提示我保存文件。我想在脚本上使用 cron 作业自动执行以下操作:
谁能帮忙写个脚本?我可以私下提供 URL 以测试行为。
无需使用用户界面(文本或 GUI)即可下载 URL 的一种方法是将wget所有需要的参数(如您所愿)用作 cron 作业。
单个 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
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)