Bash 需要wget写入2个文件

Bash 需要wget写入2个文件,bash,logging,cron,wget,tee,Bash,Logging,Cron,Wget,Tee,第一次用户在这里 Linux spike 4.4.36-server-2.mga5#1 SMP周二12月6日17:32:56 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux 基于linux GNU构建的GNU Wget 1.15 GNUBash,版本4.3.48(1)-发行版(x86_64-mageia-linux-GNU) 我有一个cron作业,它使用wget下载一个文件。简单的工作。我想在我的电子邮件中看到该工作的验证。我已经部分成功地实现了这一点,但电子

第一次用户在这里

  • Linux spike 4.4.36-server-2.mga5#1 SMP周二12月6日17:32:56 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

  • 基于linux GNU构建的GNU Wget 1.15

  • GNUBash,版本4.3.48(1)-发行版(x86_64-mageia-linux-GNU)

我有一个cron作业,它使用wget下载一个文件。简单的工作。我想在我的电子邮件中看到该工作的验证。我已经部分成功地实现了这一点,但电子邮件显示的是cron输出,而不是wget日志信息。这里有一个例子

cron作业:

/usr/local/bin/update_clouds.sh ; /usr/bin/mail -s "Attempted Cloud Update" -r cron@spike root@shuttle  < /usr/share/xplanet/logs/update_clouds.txt 
如果你读过这篇文章,你可能已经注意到有很多方法可以剥这只猫的皮。我的首选是让wget下载文件并解析日志文件,然后cron运行命令并发送电子邮件

如果你认为我的方法是错误的,请告诉我是否有更简单、更实用、更经济的方法,我愿意看看

谢谢你的帮助


马克

经过几个小时的反复试验,我现在回答我自己的问题

我所做的是:

  • 放弃wget的本机日志文件函数。这使得输出成为标准输出

  • 将“标准错误”和“标准输出”重定向到一个文本文件中,以发送给我的管理员用户

  • 在同一行中,我添加了一个命令,将要发送的文本文件的内容附加到日志文件中,以进行更新

  • 将cron作业配置为仅运行脚本并向我发送电子邮件

  • shell脚本中的命令如下所示:

     /usr/local/bin/update_clouds.sh ; tail -30 /usr/share/xplanet/logs/clouds.log > /usr/share/xplanet/logs/update_clouds.txt ; /usr/bin/mail -s "Attempted Cloud Update" -r cron@spike root@shuttle  < /usr/share/xplanet/logs/update_clouds.txt 
    
     wget --user=xxxxxx --password=xxxxxxxxxx -O /usr/share/xplanet/images/clouds.jpg http://xplanetclouds.com/clouds/2048/clouds_2048.jpg 2> /usr/share/xplanet/logs/update_clouds.txt ; cat /usr/share/xplanet/logs/update_clouds.txt >> usr/share/xplanet/logs/clouds.log
    
    cron作业如下所示:

     /usr/local/bin/update_clouds.sh ; /usr/bin/mail -s "Updated Clouds" -r "Shuttle Cron<root@shuttle>" root@shuttle < /usr/share/xplanet/logs/update_clouds.txt ; 
    
    /usr/local/bin/update_clouds.sh/usr/bin/mail-s“更新的云”-r“穿梭机Cron”root@shuttle
    我很抱歉不必要地推挤社区。我很感激有机会在这方面得到一些帮助。我只是一个业余爱好者,我做这些事情是为了学习。今天确实学到了一些东西

    标记

     wget --user=xxxxxx --password=xxxxxxxxxx -O /usr/share/xplanet/images/clouds.jpg http://xplanetclouds.com/clouds/2048/clouds_2048.jpg 2> /usr/share/xplanet/logs/update_clouds.txt ; cat /usr/share/xplanet/logs/update_clouds.txt >> usr/share/xplanet/logs/clouds.log
    
     /usr/local/bin/update_clouds.sh ; /usr/bin/mail -s "Updated Clouds" -r "Shuttle Cron<root@shuttle>" root@shuttle < /usr/share/xplanet/logs/update_clouds.txt ;