目前在一家电信公司就职报表开发工程师,2010年开始从事运维方面的工作,期间从事过业务维护工程师、自动化运维工程师,2016年转为报表开发工程师。有耐心,抗压力、爱折腾,喜欢研究自动化工具。
分类: 其他UNIX
2018-03-02 17:16:49
原文地址:crontab启动shell脚本的环境变量问题 作者:jsustchenjin
crontab环境变量的问题:
crontab是进行例行性工作常用的命令,比如系统备份,编写一个备份的shell脚本后,使用crontab定时执行这个备份脚本,就可实现自动备份了。将备份时间设置在三更半夜系统访问量小的时候,既不会影响系统日常使用,也不用派人盯着,第二天看一下邮件,检查一下执行结果就好了。这里就不描述如何使用crontab了,这些资料网上一大把,下面将我使用crontab曾经犯过的几个错误和大家分享一下
1.使用普通变量
crontab执行shell时只能识别为数不多的系统环境变量,普通变量是无法识别的,如果在编写的脚本中需要使用变量,需要使用export将变量声明为环境变量,脚本才能正常执行。
2.使用相对路径
crontab执行shell时,是不会进入到shell脚本所在的路径下执行的,如果shell里含有相对路径的话,会找不到路径的,因此shell脚本中都要使用绝对路径。
3.权限设置错误
权限问题永远是linux需要注意的问题,一定要确保crontab的执行者(/etc/crontab文档设置的第二项)有访问shell脚本所在目录并且执行此shell的权限(可使用chomd和chown修改权限和所有者)。