使用crontab -e命令,会在/tmp下生成一个临时文件。当我们编辑完成保存后,会在/var/spool/cron下生成一个和用户名同名的文件。
关于设置定时的语法的使用
在这里有五个星号,每个星号都有不同的含有
语法:
* * * * * command
第一个星号表示分钟,范围是0-59,*表示每分钟。
第二个星号表示小时,范围是0-23,*表示每小时。
第三个星号表示天,范围是1-31,*表示每天。
第四个星号表示月,范围是1-12,*表示每月。
第五个星号表示星期,范围0-6,其中0表示星期日,*表示一周中每一天。
最后一部分表示要执行的文件的路径。
例:
一月份到五月份,每周2和周5凌晨2:30执行备份任务
30 2 * 1-5 2,5 /bin/bash /root/temp/backup.sh
在这里是将脚本写进/root/temp/backup.sh中
3-6月和9-12月,每周一到周五12点到14点,每2分钟执行一次刷新任务
*/2 12-14 * 3-6,9-12 1-5 /bin/bash /root/temp/refresh.sh
crontab -l 查看定时任务
crontab -r 删除定时任务
使用crontab
时经常会遇到的一个问题是,在命令行下能够正常执行的命令或脚本,设置了定时任务时却不能正常执行。造成这种情况的原因一般是因为crond
为命令或脚本设置了与登录shell不同的环境变量
[root@centos7 ~]# head -3 /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
[root@centos7 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
关于设置环境变量
永久设置环境变量有两种办法
1、修改/etc/profile文件
在里面加入:
export PATH="$PATH:/home/xyz/Tesseract/bin"
2、修改.bashrc文件
修改~/.bashrc文件。 (每个用户目录下都有,ls -all,单独用户有效)
cd ~
vi .bashrc
在里面加入:
export PATH="$PATH:/opt/au1200_rm/build_tools/bin"
命令 “PATH=$PATH:路径”可以把这个路径加入环境变量,但是退出这个命令行就失效了。要想永久生效,需要把这行添加到环境变量文件里。有两个文件可选:“/etc/profile”和用户主目录下的“.bash_profile”,“/etc/profile”对系统里所有用户都有效,用户主目录下的“.bash_profile”只对这个用户有效。