目录
一、crond服务基础知识
1、crond服务介绍
2、查看crond服务的状态
3、crond服务配置文件详解
4、额外的配置文件目录
二、crond服务基础命令
1、crond服务使用
2、 管理和操作 crond 服务
3、crond服务命令举例
一、crond服务基础知识
1、crond服务介绍
1、crond是Linux中一个可以定时进行任务调度的后台程序。
2、任务调度是指系统在某个时间执行的特定的命令或程序。
3、任务调度分类 系统工作--有些重要的工作必须周而复始地执行。如病毒扫面等。 个别用户工作--个别用户可能希望执行某些程序。编写脚本shell来使crond进行定时调用,比如mysql数据库的备份;使crond定时调用简单任务,比如一条指令。
2、查看crond服务的状态
systemctl status crond.service
3、crond服务配置文件详解
rond服务配置文件路径:/etc/crontab
切换到etc目录下
cd /etc
查看目录下的文件信息
进入文件查看文件具体信息
vim crontab
- minute:表示分钟,可以是从0到59之间的任何整数。
- hour:表示小时,可以是从0到23之间的任何整数。
- day:表示日期,可以是从1到31之间的任何整数。
- month:表示月份,可以是从1到12之间的任何整数。
- week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
- command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
- user-name:表示执行任务将以哪个用户的身份运行。一般是root用户或其他用户
- `*`:表示匹配任意值,比如 `* * * * *` 表示每分钟都执行。
- `,`:用于指定多个值,比如 `0,15,30,45 * * * *` 表示每小时的 0 分、15 分、30 分和 45 分执行。
- `/`:用于指定时间间隔,比如 `*/5 * * * *` 表示每隔 5 分钟执行一次。
- `-`:用于指定范围,比如 `1-5 * * * *` 表示分钟为 1 到 5 都执行。
- `#`:表示注释,以 `#` 开头的行将被忽略。
4、额外的配置文件目录
除了 `/etc/crontab`,crond 还可以读取以下目录中的文件进行定时任务调度:
- `/etc/cron.d/`:该目录下的文件遵循与 `/etc/crontab` 相同的格式。
- `/etc/cron.daily/`:该目录下的文件用来指定每天执行的任务。
- `/etc/cron.weekly/`:该目录下的文件用来指定每周执行的任务。
- `/etc/cron.monthly/`:该目录下的文件用来指定每月执行的任务。
注意:修改了 `/etc/crontab` 文件后,需要重启 `crond` 服务或者重新加载配置文件才能生效,可以使用 `service cron restart` 命令来重启服务。
二、crond服务基础命令
1、crond服务使用
crontab 命令使用详解:
- -e:执行文字编辑器来设定时程表,内定的文字编辑器是 VI,重启服务器则失效
- -l:列出目前的时程表
- -r:删除目前的时程表。
- -i:在删除用户的crontab文件时给确认提示。
`crontab` 命令用于管理用户的定时任务(cron job)。下面是 `crontab` 命令的使用详解:
1. 查看当前用户的定时任务:`crontab -l`
crontab -l
这个命令会列出当前用户所有的定时任务。2. 编辑定时任务:`crontab -e`
这个命令会打开一个文本编辑器,用于编辑当前用户的定时任务。如果是第一次编辑,会让你选择编辑器,一般选择vm编辑器。3. 添加定时任务:`crontab -e` 编辑定时任务后,添加一行新的定时任务即可。
4. 删除定时任务:`crontab -r`
这个命令会删除当前用户的所有定时任务。5. 使用其他定时任务文件:`crontab -u 用户名 文件名`
这个命令会将指定文件中的定时任务导入到指定用户的定时任务中。6. 注意事项:
- 定时任务的格式和含义与 `/etc/crontab` 文件中的一致,即 `分钟 小时 日 月 周 用户命令`。
- 定时任务中的命令可以是任意可执行的命令、脚本或程序。
- 定时任务文件中可以使用 `@reboot` 来指定在系统启动时执行的任务。
- 使用 `crontab -e` 修改定时任务后,会覆盖之前的所有定时任务,因此要小心操作。
2、 管理和操作 crond 服务
启动 crond 服务
systemctl start crond
停止 crond 服务
systemctl stop crond
重启 crond 服务
systemctl restart crond
查看 crond 服务状态
systemctl status crond
查看 crond 服务日志
tail -f /var/log/cron
3、crond服务命令举例
- 每两个小时重启一次apache
- 0 */2 * * * /sbin/service httpd restart
- 每天7:50开启ssh服务
- 50 7 * * * /sbin/service sshd start
- 每天22:50关闭ssh服务
- 50 22 * * * /sbin/service sshd stop
- 每月1号和15号检查/home 磁盘
- 0 0 1-15 * * fsck /home 0 0 1,15 * * fsck /home
- 每小时的第一分执行 /home/bruce/backup这个文件
- 1 * * * * /home/bruce/backup
- 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
- 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;
- 意思是每月的1、11、21、31日是的6:30执行一次ls命令
- 30 6 */10 * * ls
好啦,结束