为了让某台服务器能定时更新时间,学习了下Crontab。
一、Crontab格式介绍
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
Crontab有六个参数,它们的含义依次是:表示分(第几分钟)、表示时、表示第几天、表示月份、表示星期几、要执行命令
例如:
0 23 1 4 * ntpdate asia.pool.ntp.org #4月1日23点更新系统时间
* * * * 1 apt-get upgrade # 每周一更新已安装的包
0 23 * * 1 python test.py # 每周一23点运行一次 test.py文件 注意:此时Python环境变量要配置好。
二、Crontab使用步骤
1、创建执行文件 updateTime.sh, 里面存放要执行的内容
export PATH=“sh的路径” # 使用echo $PATH,获取sh的路径
echo "123456" | sudo -S service ntp stop # 执行sudo需要输入密码,添加参数-S,可以读取echo输入的密码
sudo ntpdate 192.168.0.6 # 更新时间
2、创建Crontab文件 updateTime.cron
01 11 * * 2 /home/test/updateTime.sh # 运行 updateTime.sh 文件
3、 将updateTime.cron文件添加到定时任务中
crontab updateTime.cron
crontab -l # 查看当前定时任务
三、/etc/Cront.d(第二种定时方法)
该方法只需将updateTime.cron文件加入到相应目录下,每种目录表达的意思如下:
1 /etc/cron.d # 与第一种方法相似,执行命令比Crontab多了一个执行用户,例如 * * * * 1 root ls 每周一root执行一次ls
2. /etc/cron.hourly/ # 每小时执行一次
3. /etc/cron.daily/ #每天执行一次
4. /etc/cron.monthly/ #每月执行一次
5. /etc/cron.weekly/ # 每星期执行一次