我在 Linux 运维时,经常会用到定时器,比方定期备份重要的文件,非常好用。
Linux 系统使用 cron 程序来安排要定期执行的作业。cron 程序会在后端运行并检查一个特殊的表(被称作 cron 时间表),以获知已安排执行的作业。
cron 时间表采用一种特别的格式来指定作业何时运行。其格式如下:(敲重点)
min hour dayofmonth month dayofweek command
这个格式非常重要,要牢记。cron 时间表允许你用特定值、取值范围(比方1~5)或者者通配符(星号)来指定条目。
命令列表必需指定要运行的命令或者脚本的全路径名。你可以像在普通的命令行中那样,增加任何想要的命令行参数和重定向符号。
15 10 * * * /home/qijing/test.sh > test.out
shell 脚本如下(我是存放在 /script_qijing
目录下)
#!/bin/bash# Program:# backup workspace# History:# 2022/03/10 junfenghe.cloud@qq.com version:0.0.1path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport pathtar -zcvf /backup/backup_workspace_$(date +"%Y_%d").tar.gz /root/workspace_docker_file /root/workspace_kubernetes
作用是将将两个文件夹打包成一个压缩包,并且保存在 /backup
目录下。(/root/workspace_docker_file
其实是我编写 Dockerfile 的目录,/root/workspace_kubernetes
是我编写 kubernetes yaml配置文件的目录)
接下来编辑 /etc/crontab
文件
SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=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* 22 * * * /scripts_qijing/backup_script.sh
编辑完保存之后,Linux 系统将在每天晚上 10 的时候执行一次脚本,非常的好用。
PS: 会写 Shell 脚本的程序员都是幸福的