一、crontab是linux系统下自带的定时任务工具,用户可以使用crontab工具来定制自己的计划任务,crontab文件
cron.daily是每天执行一次的job
cron.weekly是每个星期执行一次的job
cron.monthly是每月执行一次的job
cron.hourly是每个小时执行一次的job
cron.d是系统自动定期需要做的任务
crontab是设定定时任务执行文件
基本格式
* * * * * command
分 时 日 月 周 命令
第1列:表示分钟0~59 每分钟用*或者 */1表示
第2列:表示小时1~23(0表示0点)
第3列:表示日期1~31
第4列:表示月份1~12
第5列:标识号星期几0~6(0表示星期天)
第6列:要运行的命令,可以是系统命令,也可以是自己编写的脚本
1.新创建的cron任务,不会马上执行,至少要过 2 分钟后才可以,可以重启 cron 来马上执行,设置定时任务,定时执行命令:
crontab -e
选择编辑器。(选vim)就可以了,选第三个
2.输入定时命令(每周自动同步ntp时间)
让cron命令重新加载配置
编辑
/etc/rsyslog.d/50-default.conf
文件,取消
cron*
一行的注释
日志文件为
/var/log/cron.log
出现(CRON) INFO (Skipping @reboot jobs – not system startup)
sudo rm -rf /var/run/crond.reboot
crontab -l
测试每分钟自动写入hello到test文档
创建test文档
sudo touch /root/test.txt
修改cron定时任务改为:
* * * * * echo "Hello world!" >> /root/test.txt
保存退出,同时重启ron服务:
sudo service cron reload
1分钟后查看cat/root/test.txt,里面已有hello,测试成功。
测试每晚服务器17点46分关机
vim /etc/crontab
添加下列命令
46 17 * * * root /sbin/reboot
二、使用定时工具自动备份mysql数据库
在弹出的编辑器中,输入以下备份命令并设置备份的执行时间。例如,以下命令将每天都在晚上11点执行备份:
0 23 * * * mysqldump -u [用户名] -p [密码] [数据库名] > /[备份文件名].sql
其中,“0 23 * * *”表示在每天的23:00执行备份,[用户名]和[密码]是指能够访问数据库的用户名和密码,[数据库名]是指要备份的数据库名称,[备份文件名]是指备份文件的名称。系统会在每天的23:00执行一次备份任务。如果需要更改备份时间或其他任务信息,可以再次执行“crontab -e”打开编辑器进行修改,/文件路径
三、查看文件
保存成功的文件去哪里了呢?在/var/spool/cron/下面
-
# cd /var/spool/cron