我做了一个web服务器来显示我的网页在本地,因为位于一个连接不好的地方,所以我想要做的是下载页面内容并替换旧的,所以我做这个脚本在后台运行,但我不是很确定这是否可以全天候工作(2米只是为了测试它,但我希望它会等待6-12小时),所以,¿你对这个脚本有什么看法?是不安全的?或者对于我在做什么而言足够了?谢谢。脚本下载网页
#!/bin/bash
a=1;
while [ $a -eq 1 ]
do
echo "Starting..."
sudo wget http://www.example.com/web.zip --output-document=/var/www/content.zip
sudo unzip -o /var/www/content.zip -d /var/www/
sleep 2m
done
exit
UPDATE:此代码我现在用: (只是一个原型,但我假装不使用sudo)
#!/bin/bash
a=1;
echo "Start"
while [ $a -eq 1 ]
do
echo "Searching flag.txt"
if [ -e flag.txt ]; then
echo "Flag found, and erasing it"
sudo rm flag.txt
if [ -e /var/www/content.zip ]; then
echo "Erasing old content file"
sudo rm /var/www/content.zip
fi
echo "Downloading new content"
sudo wget ftp://user:[email protected]/content/newcontent.zip --output-document=/var/www/content.zip
sudo unzip -o /var/www/content.zip -d /var/www/
echo "Erasing flag.txt from ftp"
sudo ftp -nv < erase.txt
sleep 5s
else
echo "Downloading flag.txt"
sudo wget ftp://user:[email protected]/content/flag.txt
sleep 5s
fi
echo "Waiting..."
sleep 20s
done
exit 0
erase.txt
open xx.xx.xx.xx
user user password
cd content
delete flag.txt
bye
请勿以root身份运行wget并解压缩。相反,请在/ var/www上设置权限,以便使用此脚本可以访问需要的文件。您还应该考虑使用系统cron工具而不是循环来执行计划。有关更多信息,请参阅“man crontab”。 – BadZen
同意上面的评论。也在这里搜索S.O.对于许多* nix crontab问题提出非常类似的问题。祝你好运。 – shellter
你有没有想过使用['rsync'](http://linux.die.net/man/1/rsync)? – ghoti