找回密码
 立即注册
搜索
查看: 616|回复: 0

Linux 计划任务

[复制链接]

267

主题

0

回帖

1162

积分

管理员

积分
1162
发表于 2023-12-27 23:38:52 | 显示全部楼层 |阅读模式

在 Linux 系统中,定时任务是自动化和定期执行任务的重要手段。其中,crontab 和 crond 是两个核心概念。

crond

crond 是 cron daemon 的缩写,是 Linux 下的一个守护进程,它负责周期性地检查并执行 crontab 中定义的定时任务。换句话说,crontab 定义了任务,而 crond 则负责执行这些任务。

crontab

crontab 是 cron table 的缩写,是一个用于设置、维护或检查用户的定时任务的命令。通过编辑 crontab 文件,用户可以指定在特定时间或间隔内要执行的命令或脚本。

基本格式

crontab [选项] 文件名
  • -e:编辑用户的 crontab 文件;
  • -l:列出用户当前的 crontab 内容;
  • -r:删除用户的 crontab 文件;
  • -i:在删除用户 crontab 文件之前进行确认。

当使用 crontab -e 命令时,系统会打开一个编辑器(通常是 vi 或 nano),供用户编辑或添加新的定时任务。

crontab 格式

每一行代表一个定时任务,格式如下:

* * * * * command

分别表示分钟(0-59)、小时(0-23)、日期(1-31)、月份(1-12)、星期(0-7,0 和 7 都代表星期日)和要执行的命令。

关于通配符:

  • *:代表所有可能的值;
  • ,:用于指定多个值;
  • -:用于表示一个范围值;
  • /:用于表示重复的频率。

每次编辑完某个用户的 cron 设置后,cron 自动在 /var/spool/cron 下生成一个与此用户同名的文件,此用户的 cron 信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用 crontab -e 来编辑。cron 启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动 cron 服务。

示例

每 1 分钟执行一次 myCommand

* * * * * myCommand

每小时的第 3 和第 15 分钟执行

3,15 * * * * myCommand

在上午 8 点到 11 点的第 3 和第 15 分钟执行

3,15 8-11 * * * myCommand

每隔两天的上午 8 点到 11 点的第 3 和第 15 分钟执行

3,15 8-11 */2  *  * myCommand

每周一上午 8 点到 11 点的第 3 和第 15 分钟执行

3,15 8-11 * * 1 myCommand

每晚的 21:30 重启 smb

30 21 * * * /etc/init.d/smb restart

每月 1、10、22 日的 4 : 45 重启 smb

45 4 1,10,22 * * /etc/init.d/smb restart

每周六、周日的 1 : 10 重启 smb

10 1 * * 6,0 /etc/init.d/smb restart

每天 18 : 00 至 23 : 00 之间每隔 30 分钟重启 smb

0,30 18-23 * * * /etc/init.d/smb restart

每星期六的晚上 11 : 00 pm 重启 smb

0 23 * * 6 /etc/init.d/smb restart

每一小时重启 smb

0 */1 * * * /etc/init.d/smb restart

晚上 11 点到早上 7 点之间,每隔一小时重启 smb

0 23-7/1 * * * /etc/init.d/smb restart

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|棱讯科技 ( 粤ICP备2024228160号-2|粤公网安备44030002003510号 )

GMT+8, 2024-12-4 02:08 , Processed in 0.018161 second(s), 3 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表