在学习/理解Linux的过程中(困难但享受它)。我编写了一个非常短的 shell 脚本,它使用 wget 从网站中提取 index.html 文件。
#!/bin/bash
#Script to wget website mywebsite and put it in /home/pi/bin
index=$(wget www.mywebsite.com)
当我在命令行中输入命令 wget_test 时,这会起作用。它将 .html 文件输出到 /home/pi/bin 中。
我已经开始尝试通过 cron 来执行此操作,这样我就可以在特定时间执行此操作。我使用 crontab -e 输入以下内容
23 13 * * * /home/pi/bin/wget_test
在此示例中,我希望脚本在 13.23 运行并将 .html 文件输出到 /home/pi/bin,但什么也没发生。
答案1
此行index=$(wget www.mywebsite.com)
会将变量设置$index
为空。这是因为(默认情况下)wget
不会写入任何内容标准输出所以没有什么可以放入变量中。
所做wget
的是将文件写入当前目录。 Cron 作业从您的$HOME
目录运行,因此如果您想将文件写入您的$HOME/bin
目录,您需要执行以下两件事之一
- 写
wget -O bin/index.html www.mywebsite.com
- 写
cd bin; wget www.mywebsite.com
顺便说一句,一个人的~/bin
目录通常是存储个人脚本和程序的地方,因此最好考虑在其他地方编写定期从网站检索的文件。
答案2
确保您的 bash 脚本具有可执行权限,并确保为所需用户设置了 cronjob。
我认为正在发生的事情是脚本中的命令只需要是:
wget www.mywebsite.com/index.html