Linux 中的定时任务一般通过 crontab
命令来管理,这里记录下常用的一些任务。
¶一、常用命令
crontab -l
查看当前用户的定时任务列表crontab -e
编辑当前用户的定时任务列表service crond status
查看服务状态service crond start
启动服务service crond stop
关闭服务service crond restart
重启服务service crond reload
重新载入配置
¶二、命令脚本
先创建存放脚本的文件夹:
1 | mkdir -p /mnt/mysqldump |
再编辑脚本文件(docker 版
在下方):
1 | vim /mnt/mysqldump/my-database.sh |
1 |
|
上述脚本仅需关注 username
、password
、database_name
、number
等变量;通过 ls 命令获取第 9 列(文件名列),再通过实现定义操作时间最晚的那个需要删除的文件。
注意
执行命令可能提示You have new mail.
,输入
mail
交互式界面中的常用命令:
n
查看下一封邮件p
查看上一封邮件d 1 2
按编号删除邮件,不填编号时删除当前邮件d *
删除所有邮件u 1 2
按编号恢复删除的邮件q
退出 mail 界面h
显示邮件列表的头部信息,包括邮件的发件人、主题等?
显示帮助信息
给脚本文件授权,否则会在 mail 中看到 Permission denied
:
1 | chmod +x /mnt/mysqldump/*.sh |
¶crontab
cron 读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron 的配置文件称为 crontab
,是 cron table
的简写。
¶crontab 语法
1 | minute hour day-of-month month-of-year day-of-week commands |
除了数字还有几个个特殊的符号就是 *
/
和 -
,
,*
代表所有的取值范围内的数字,/
代表每的意思,/5
表示每 5 个单位,-
代表从某个数字到某个数字,,
分开几个离散的数字。
¶添加 cron 定时任务
crontab -e
编辑任务文件,添加以下内容:
1 | 50 23 * * * /mnt/mysqldump/my-database.sh |
可以使用 crontab -l
查看任务是否已添加成功。
¶docker 版
当通过 docker 安装 mysql 时,也可以进行备份,比常规版新增了 container_name
、container_tmp_dir
参数,需要注意 container_name
的值。使用下方脚本:
1 |
|