linux crontab定时任务的使用 避免踩坑

一、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下就不能正确执行

linux crontab定时任务的使用 避免踩坑

2.要确保yourscriptsname.sh中涉及的命令以及文件都要写上完整的绝对路径。减少出现失败的可能。

3.最好在yourscriptsname.sh的头部加上你的bash的路径

linux crontab定时任务的使用 避免踩坑

which bash可以查看,以我的为例子:可以写为#!/bin/bash     (每个人的不一样,以自己的路径为准)

二、crontab -e的使用

1.必须使用sudo crontab -e这样才能最大权限的调用脚本。直接crontab -e你有的情况下会惊奇的发现写好的命令并没有执行。

2.crontab中调用的shell脚本或者python脚本都要加上绝对路径

linux crontab定时任务的使用 避免踩坑

三、在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!

linux crontab定时任务的使用 避免踩坑

linux crontab定时任务的使用 避免踩坑

四、总之涉及到shell脚本或者crontab的命令,最好都加上整的绝对路径,以免出现不必要的麻烦。尤其是新手一个忽视,可能要花很久找bug。比如我这个菜鸟踩坑专家哈哈哈哈!

由于时间和水平有限,有纰漏之处敬请指正,属于非科班,专业术语不太会,可能显得很业余。