大佬教程收集整理的这篇文章主要介绍了bash – 运行一个简单的shell脚本作为cronjob,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
/home/myUser/scripts/test.sh
#!/bin/bash touch file.txt
crontab中:
* * * * * /home/myUser/scripts/test.sh
该脚本从终端运行正常,但无法将其作为cronjob运行.到目前为止,我已经在crontab中尝试了这些:
SHelL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin * * * * * /bin/bash /home/myUser/scripts/test.sh
而这在脚本文件中:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/myUser/scripts
从我收集的解决方案可能在PATH变量中,但我无法弄清楚它是什么,因为我的理解在这一点非常有限.所以我的问题是,如何让我的脚本作为cronjobs运行?
编辑:该文件具有所有用户的rwx权限.这只是为了测试目的.
编辑:cronjobs如* * * * * touch /home/myUser/scripts/test.txt工作,但它不会运行脚本.
编辑:当你引用一个文件没有指定其完整路径(例如file.txt,而不是完整路径/home/myUser/scripts/file.txt)在sHell中,它被认为是指的是一个文件您当前的工作目录.当您运行脚本(无论是交互式还是通过crontab)时,脚本的工作目录与脚本本身的位置无关;相反,它是继承自脚本的任何操作.
因此,如果cd(更改工作目录)到脚本的目录,然后运行它,file.txt将引用与脚本相同的目录中的文件.但是,如果您先没有cd,那么file.txt会引用您运行脚本时遇到的任何目录中的文件.例如,如果您的主目录是/ home / myUser,并且您打开一个新的sHell并立即运行脚本(如scripts / test.sh或/home/myUser/scripts/test.sh; ./test.sh赢得’它将触摸文件/home/myUser/file.txt,因为/ home / myUser是您当前的工作目录(因此是脚本的).
当您从cron运行脚本时,它基本上是一样的:它运行它与设置到您的主目录的工作目录.因此,脚本中的所有文件引用都取决于您的主目录,除非脚本在其他位置cds或指定文件的绝对路径.
以上是大佬教程为你收集整理的bash – 运行一个简单的shell脚本作为cronjob全部内容,希望文章能够帮你解决bash – 运行一个简单的shell脚本作为cronjob所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。