1、什么是循环执行的例行性工作
循环执行的例行性工作:每隔一定的周期就需要执行一次
2、crontab的工作过程
-
/etc/cron.allow,写在该文件的人可以使用crontab命令
-
/etc/cron.deny,黑名单
-
两个文件如果都不存在,只有root能使用
#crontab工作调度对应的系统服务
[root@localhost ~]# systemctl status crond
#crontab工作的日志文件
[root@localhost ~]# ll /var/log/cron
#用户定义计划任务的文件所在目录
[root@localhost ~]# ll /var/spool/cron/
3 、crontab命令详解
[root@localhost ~]# crontab --help
crontab: invalid option -- '-'
crontab: usage error: unrecognized option
Usage:crontab [options] filecrontab [options]crontab -n [hostname]Options:-u <user> define user-e edit user's crontab-l list user's crontab-r delete user's crontab-i prompt before deleting-n <host> set host in cluster to run users' crontabs-c get host in cluster to run users' crontabs-s selinux context-V print version and exit-x <mask> enable debugging
crontab计划任务的时间格式:
分 | 时 | 日 | 月 | 周 |
---|---|---|---|---|
0-59 | 0-23 | 1-31 | 1-12 | 0-7 |
crontab计划任务的时间格式中的特殊符号:
特殊字符 | 含义 |
---|---|
* | 代表任何时刻 |
, | 代表分隔时段 |
- | 代表一段时间范围 |
/数字 | 指定时间的间隔频率,例如每 3 分钟进行一次,*/3 |
注:%在crontab里面有特殊含义,如果有命令里面需要使用%,需要使用\转义。
#每天早上9点整说good morning
[root@server ~]# crontab -e
0 9 * * * wall "good morning"
注:wall命令用于向系统当前所有打开的终端上输出信息。 通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。
4、 系统的计划任务
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root# For details see man 4 crontabs# Example of job definition:
# .---------------- 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
# | | | | |
# * * * * * user-name command to be executed
当需要同一时间执行多个脚本时,可以将这多个脚本放在一个目录下,然后使用run-parts来执行。
run-parts:该命令可将后面接的“目录”内的所有文件找出来执行。
5、使用场景
- 系统维护:自动执行定期的系统维护任务,如清理临时文件、更新系统、备份重要数据等。
- 日志管理:定时轮转日志文件,压缩历史日志,以及删除过期的日志文件来控制磁盘空间的使用。
- 软件更新:自动检查和安装软件更新,确保系统和应用程序都是最新的。
- 数据库备份:按照预定的时间间隔自动备份数据库,减少数据丢失的风险。
- 监控警报:设置定时检查系统资源使用情况,如 CPU、内存和磁盘空间,并在超过阈值时发送警告。
- 定时报告:生成定期的报告,如每小时或每天的流量报告、性能报告等,并自动发送给相关人员。
- 计划任务执行:运行定时脚本,例如每天晚上执行数据整理或处理任务。
- 网站内容更新:对于需要定期发布内容的网站建设,可以使用 Crontab 定时发布文章或更新网页内容。
- 邮件发送:定时发送新闻通讯或提醒邮件给用户。
- 批处理作业:在非高峰时间自动执行资源密集型的批处理作业,以优化资源使用。
- 安全扫描:定期进行系统安全扫描,检查潜在的安全漏洞和恶意软件。
- 定时关机或重启:在特定时间或在完成一系列任务后自动关闭或重启系统。
- 文件同步:自动同步本地文件夹与远程服务器上的文件夹,保持数据的一致性。
- 数据抓取:定时从网站上抓取数据,进行数据分析或填充数据库。
Crontab 的应用场景非常广泛,几乎涵盖了所有需要周期性执行的任务。它通过简化任务的自动化执行,极大地提高了工作效率,减少了手动操作的工作量。在使用 Crontab 时,通常需要编写一个简单的配置文件,指定任务的执行时间和要运行的命令或脚本。这样就可以确保任务能够按计划准确地执行。