一些会比较经常用到的Linux下的工具,当然都是命令行。多数工具需要与正则表达式配合使用,所以可以很多工具使用前都需要先了解正则表达式,正则表达式可以参考这里正则表达式学习笔记
cron是linux下执行定时任务的系统服务,由crontab文件来指定执行的时间和具体命令,每个用户都有属于自己的crontab文件,具体信息可以查看man crontab
文件的编写信息。
通过命令sudo systemctl status cron
来查看cron服务是否已经启动
编写当前用户的crontab文件可以执行:
1 | crontab -e |
将会修改属于用户自己的crontab文件,使用root身份执行将会修改root用户的crontab:
1 | sudo crontab -e |
列出工作表中的所有命令:
1 | crontab -l |
删除当前用户的cron服务:
1 | crontab -r |
查看用户blueyi的crontab服务信息:
1 | crontab -u blueyi -l |
删除blueyi的crontab服务信息:
1 | crontab -u blueyi -r |
crontab文件主要在以下几个文件夹中:
- /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
- /etc/crontab 这个文件负责调度各种管理和维护任务。
- /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
- 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次
crontab文件中每行是一个定时命令,其中每行的前5个区段为时间和日期区段,最后一个是需要定时执行的命令,以空格分隔。5 个时间区段分别表示分(0-59)、时(0-23)、日(1-31)、月(1-12)、周(0-6,其中0表示周日)。它们可以用数字表示,或者配合以下4个通配符:
*
表示取值范围内的所有数字/n
表示每过n个相应的数字执行m-n
表示从m到n之间执行m,n,l
表示第m、第n和第l个时间执行
举例:
每分钟执行一次cmd
1 | * * * * * cmd |
每小时的10、20、30分钟执行一次cmd
1 | 10,20,30 * * * * cmd |
每天3点10分执行一次cmd
1 | 10 3 * * * cmd |
每隔5天,在21点到23点之间的每20分钟执行一次
1 | */20 21-23 */5 * * cmd |
每周六早上1点30分执行一次cmd
1 | 30 1 * * 6 cmd |
每个月的10号和周一到周三的上午11点执行cmd
1 | 0 11 10 * mon-wed cmd |
*一月12号早上4点每10分钟执行一次cmd
1 | */10 4 12 jan * cmd |
如果发现自己创建的定时任务并未执行,可以查看是否由于cron服务没有启动:
1 | sudo systemctl status cron |
启动cron服务:
1 | sudo systemctl start cron |