一、crontab中调用shell脚本
1.确保yourscriptsname.sh的权限是755。
如果不确定,可以在sh脚本所在文件夹下用ll命令查看,若显示如下图-rw-r--r--表示没有执行权限,用sudo chmod 755 yourscriptsname.sh(自己的.sh脚本文件的名字)修改未755权限,再次ll查看yourscriptsname.sh变为绿色,权限为-rwxr-xr-x。
原因:没有755权限,其他文件夹下使用sh yourscriptsname.sh会提示permisson deny,那么在crontab下就不能正确执行
2.要确保yourscriptsname.sh中涉及的命令以及文件都要写上完整的绝对路径。减少出现失败的可能。
3.最好在yourscriptsname.sh的头部加上你的bash的路径
which bash可以查看,以我的为例子:可以写为#!/bin/bash (每个人的不一样,以自己的路径为准)
二、crontab -e的使用
1.必须使用sudo crontab -e这样才能最大权限的调用脚本。直接crontab -e你有的情况下会惊奇的发现写好的命令并没有执行。
2.crontab中调用的shell脚本或者python脚本都要加上绝对路径
三、在crontab中使用python脚本
1.查看python脚本的编码格式
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存盘退出)
参考这位作者的:https://blog.csdn.net/silscorige/article/details/6722244,感谢!
step1:sudo vim test1.py
step2:输入:号,然后输入set ff回车,即可看到编码格式,若linux中显示为dos要使用set ff=unix更改,然后wq!
四、总之涉及到shell脚本或者crontab的命令,最好都加上整的绝对路径,以免出现不必要的麻烦。尤其是新手一个忽视,可能要花很久找bug。比如我这个菜鸟踩坑专家哈哈哈哈!
由于时间和水平有限,有纰漏之处敬请指正,属于非科班,专业术语不太会,可能显得很业余。