内容提要
crontab是cron的配置文件,用于调度任务。可以在/var/spool/cron/、/etc/crontab、/etc/cron.d/等目录中找到相关配置文件。使用crontab -e命令创建新任务,使用sudo crontab -u -e命令以其他用户身份运行任务。任务格式为<分钟> <小时> <日> <月> <星期> <命令>。可以使用*、/、-等操作符指定时间。举例:每分钟执行一次命令、每天凌晨2点10分执行重启命令、每隔两天执行一次重启命令。可以编写shell脚本来定时备份数据库数据,并将其加入crontab中。
延伸解读
crontab 配置文件的位置与用途
文章指出 crontab 相关文件分布在多个目录:/var/spool/cron/ 存放用户任务,/etc/crontab 负责系统维护任务,/etc/cron.d/ 存放自定义任务。此外,/etc/cron.hourly 等目录可让脚本按固定周期执行。了解这些位置有助于排查任务是否生效,也方便区分用户级与系统级调度。
时间字段与操作符的灵活组合
cron 任务由分钟、小时、日、月、星期五个时间字段加命令组成。操作符中,* 表示任意值,/ 表示间隔,- 表示范围。例如 */2 在“日”字段表示每隔两天执行。文章示例展示了每分钟、每天凌晨2点10分、每隔两天等调度方式,读者可据此调整备份频率。
定时备份数据库的脚本要点
文章给出一个 shell 脚本示例:用 date 命令生成日期字符串作为文件名,通过 mysqldump 导出数据库到指定目录。脚本中密码以变量形式传入,实际使用时需替换为真实信息。将脚本加入 crontab 后即可每天自动备份,减少数据丢失风险。注意脚本中的路径和数据库参数需按环境修改。
Q&A
crontab是什么?它的配置文件通常存放在哪些目录?
crontab是cron table的简写,是cron的配置文件,也叫作业列表,用于调度任务。相关配置文件可以在/var/spool/cron/、/etc/crontab、/etc/cron.d/等目录中找到。
如何创建一个新的crontab任务?如何以其他用户身份运行?
使用crontab -e命令可以创建一个以当前用户运行的新cron任务。若要以其他用户运行,使用sudo crontab -u -e命令。
crontab任务的时间格式是怎样的?有哪些操作符可用?
每个cron任务的格式为:<分钟> <小时> <日> <月> <星期> <命令>。时间部分有分、时、日、月、周五种,操作符包括:*(取值范围内的所有数字)、/(每过多少个数字)、-(从X到Z)、,(散列数字)。
能否举例说明crontab的常见时间设置?
例如:每分钟执行一次命令:* * * * * cd /home/;每天凌晨2点10分执行重启命令:10 02 * * * reboot;每隔两天执行一次重启命令:* * */2 * * reboot。
如何编写shell脚本定时备份数据库?
可以编写一个shell脚本,使用mysqldump命令备份数据库。示例脚本内容:#!/bin/bash date_str=$(date "+%Y-%m-%d") pwd="123" echo $date_str cd /home/ubuntu/data-backup mysqldump -h localhost -u root --password=$pwd -R -E -e blog > /home/ubuntu/data-backup/$date_str.sql。具体信息根据个人情况更改。
如何将备份脚本加入crontab实现每天定时备份?
将编写好的shell脚本加入到crontab中,即可每天定时备份数据库数据,从而最小化数据损失。