所以,我有一个bash脚本,应该在每小时一小时的时间将ifconfig的输出传递给一个文本文件。 正如很多人似乎遇到过的,这个脚本在被cron使用时不能正常工作。 不过,我所看到的大部分修正似乎并不适用于我的情况。 我明确指出所有的path,脚本具有执行权限,并在cron文件的末尾有一个换行符。
创造性地,我的脚本ip.sh包含:
ifconfig > /home/drake/DropBox/maintenance_scripts/ip.txt
cron条目是:
0 * * * * /home/drake/DropBox/maintenance_scripts/ip.sh
(我每分钟都在运行debugging)
在启动的应用程序closures之前,batch file不允许交互
运行batch fileMATLAB – DIANA TNO
即使在Windows上的背景中运行命令之后,PHP脚本仍然卡在exec上
用Lua执行powershell命令
这里的BIG问题在运行时会运行,它会清除它可能具有的任何内容的ip.txt。 另外,我还有另外一个脚本,它和正常运行时间一样,没有任何问题,只是混淆了。 我也试过了>>,这似乎产生了相同的结果
所以,有没有人有任何想法,为什么一个脚本可能按预期发挥作用,而另一个脚本就会这样消失?
这是在我的ubuntu服务器上运行。 我正在使用DropBox同步文本文件
PHP:不能exec()wkhtmltopdf:“sh:/ usr / bin / wkhtmltopdf:权限被拒绝”
Windows任务计划程序使用Powershell执行.aspx页面
Java SE 6:如何在Ubuntu Linux上通过Runtime.getRuntime()。exec()从外部打开文件?
以编程方式获取path
你的脚本应该在顶部有一个“shebang”行:
#!/bin/sh
尽管这不是绝对必要的。
脚本覆盖了ip.txt因为你告诉它。 这就是重定向操作符所做的事情。 如果要追加到文件末尾,请使用>> 。 (你说你试过了,结果相同,我怀疑是这样,我怀疑cron作业没有产生任何输出,所以它没有附加任何文件。)
但是你不需要一个单独的脚本来做重定向。 您可以在cron作业本身使用>或>> :
0 * * * * ifconfig >> /home/drake/DropBox/maintenance_scripts/ip.txt
至少在我的系统中,cron作业的默认$PATH是/usr/bin:/bin ,但是ifconfig是/sbin/ifconfig 。 尝试which ifconfig或type ifconfig来查看ifconfig在系统中的位置(我们都使用Ubuntu,所以它可能是相同的),并使用cron作业中的完整路径; 例如:
0 * * * * /sbin/ifconfig >> /home/drake/DropBox/maintenance_scripts/ip.txt
如果你想知道什么时候输出改变了(我想这就是你正在检查的内容),添加一个时间戳很容易:
0 * * * * ( date ; /sbin/ifconfig ) >> /home/drake/DropBox/maintenance_scripts/ip.txt
ip.sh脚本应该在每次运行的时候使用ip.txt文件; 然后由ifconfig程序重新填充。 所以,你的问题是, ifconfig没有这样做。
从cron运行东西时的常见问题是环境 。 请注意,当cron运行一个命令时,配置文件不会被使用。
在这种情况下,我认为cron下的PATH设置不包括ifconfig所在的目录(so /sbin不在PATH中)。 明显的解决方法:
/sbin/ifconfig ...
export PATH=$PATH:/sbin; ifconfig ...
我认为简单地从crontab文件运行脚本通常是做生意的最佳方式。 在不更改crontab设置的情况下,您可以添加调试代码,更改环境设置,或者修改您的内容。 摆弄crontab文件中复杂的命令行在某些系统或其他系统上迟早会遇到麻烦。 所以我认为你的系统是明智的 – 我在我自己的cron -run脚本中使用了一个更复杂的系统,但是有很多共同之处。 关键是crontab条目很简单,运行的脚本就是隐藏复杂性的地方。
试试这个,它从我的cron工作。 请注意,ifconfig输出可以从Linux发行版更改为发行版,因此您可能需要调整awk选项。
# Cron ifconfig piping is broken eth0ipIC=`/sbin/ifconfig eth0` eth0ip=`echo $eth0ipIC|awk '{print $7}'|awk -F: '{print $2}'`
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。