项目中往往需通过定时执行脚本来实现定时功能的效果,crontab 是最为常用的一个 Linux 自带的工具(当然也有自己实现这样的工具, 定时精确度可达到秒级),
不同的环境下同一变量名有不同的定义,脚本一多的话修改起来麻烦,而且在 crontab 执行脚本时的环境变量是独立于系统环境变量,要解决这个问题的,
* 在进行crontab -e
编辑时,直接定义变量 xxx,在脚本中直接$xxx
就可以引用这个变量的值,达到不同系统下变量值统一的效果
还有其它的 tips
设置变量
MAILTO
,这样在 crontab 执行任务时,就会把运行的信息发送到指定的 email 中,比如MAILTO="[email protected],[email protected]"
设置
SHELL
,来指定执行脚本所用的 shell 程序,如SHELL=“bin/bash”
模拟 crontab 执行脚本的环境
- 导出 crontab 的运行环境
30 08 * * * env > ~/cronenv
- 进入这样的环境
env - \
cat ~/cronenv` /bin/sh`
- 导出 crontab 的运行环境
导出 crontab -l > xxx.file
导入 crontab [path to]xxx.file