ubuntu 中定时器crontab使用说明

本文详细介绍了如何使用CronTab设置定时任务,包括编辑、查看及删除任务的方法。通过实例展示了不同场景下定时任务的具体配置方式,如每日固定时间执行命令等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# crontab -e
打开一个编辑窗口,第一行会有内容格式的提示:
# m h  dom mon dow   command

具体意义表示:分钟 小时 日期 月份 星期 命令,在某月(mon)的某天(dom)或者星期几(dow)的几点(h,24小时制)几分(m)执行某个命令(command),*表示任意时间。例如:
3 * * * * /home/meng/hello.sh
就是:每小时的03分执行/home/meng/下的hello.sh脚本。
在保存之后退出。
注意:在完成编辑以后,要重新启动cron进程:
# /etc/init.d/cron restart
 
观察运行结果,会发现hello.sh会每小时的第3分钟时被执行一次。
 
基本本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令


crontab文件的一些例子:
   30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启lighttpd 。
   45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。
   10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启lighttpd 。
   0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。
   0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启lighttpd 。
   * */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd 
   * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd 
   0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启lighttpd 
   0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启lighttpd

 

1 设置任务 crontab -e
2 每个一定时间去执行date > /home/cynric/mydate1
     希望每天凌晨2:00去执行 date >> /home/mydate2
     可以在crontab -e中执行
     0 2 * * * date >> /home/mydate2
     注:第一个参数 如0表示第几分钟
         第二个参数 如2表示第几小时
         第三个参数 *表示每个月
         第四个参数 *表示每年
         第五个参数 表示星期几 *表示每天
3 crontab -r 删除所有的操作
   crontab -l 列出所有操作

<think>好的,我现在需要帮用户找一个Ubuntu系统的重启脚本示例。首先,用户的需求是寻找一个reboot脚本的例子,可能用于自动化任务或者系统管理。用户提到了参考引用中的内容,比如SSH配置和Zabbix监控部署,所以可能需要考虑脚本的安全性和与其他服务的兼容性。 首先,我应该回顾Ubuntu中管理重启脚本的常见方法。通常,可以使用systemd服务或者cron作业来定时执行重启任务。另外,可能需要编写一个简单的Shell脚本,然后通过系统服务来调用它。 用户提供的引用中提到了编辑sshd_config和使用Nginx配置,这可能意味着用户对系统服务有一定了解,所以使用systemd可能是合适的选择。不过,也要考虑用户可能的脚本使用场景,比如是否需要每次启动时运行,还是定时重启。 接下来,我需要确保脚本的语法正确,并且遵循最佳实践。例如,在Shell脚本开头使用#!/bin/bash,处理可能的环境变量,以及添加必要的注释。同时,考虑到安全性,脚本不应该包含敏感信息,并且权限设置要合理,比如只有root可写。 另外,用户可能希望脚本能够记录重启日志,方便后续排查问题。因此,在脚本中添加日志功能,比如将重启时间和执行结果输出到特定文件,会是一个好主意。 还需要注意,Ubuntu系统重启通常需要root权限,所以脚本的执行可能需要使用sudo或者以root用户身份运行。在示例中应该明确说明如何设置权限,比如使用chmod +x来赋予执行权限。 最后,根据用户提供的引用,他们可能已经熟悉使用vim编辑配置文件,因此在示例中展示如何创建和编辑脚本文件,以及如何设置服务或cron作业,会是必要的步骤。同时,提醒用户谨慎使用自动重启脚本,避免系统不稳定或数据丢失。</think>### Ubuntu系统重启脚本实现方法 在Ubuntu系统中实现自动重启功能可通过以下三种方式实现,根据您的具体需求选择合适方案: 一、基础Shell脚本实现 ```bash #!/bin/bash # reboot_script.sh # 记录重启时间到系统日志 logger "系统将在30秒后自动重启" echo "系统将在30秒后自动重启,按Ctrl+C取消操作" # 设置30秒倒计时后执行重启 shutdown -r +30 ``` 二、systemd定时服务实现(推荐) 1. 创建服务单元文件 ```bash sudo nano /etc/systemd/system/reboot-scheduler.service ``` 内容: ```ini [Unit] Description=定时重启服务 [Service] Type=oneshot ExecStart=/sbin/shutdown -r +30 ``` 2. 创建定时器文件 ```bash sudo nano /etc/systemd/system/reboot-scheduler.timer ``` 内容: ```ini [Unit] Description=每天凌晨3重启系统 [Timer] OnCalendar=*-*-* 03:00:00 Persistent=true [Install] WantedBy=timers.target ``` 3. 激活服务 ```bash sudo systemctl daemon-reload sudo systemctl enable reboot-scheduler.timer sudo systemctl start reboot-scheduler.timer ``` 三、crontab定时任务实现 ```bash # 编辑root用户的crontab sudo crontab -e ``` 添加以下内容实现每天凌晨3重启: ```cron 0 3 * * * /sbin/shutdown -r +300 "系统将在5分钟后重启" ``` **注意事项**: 1. 所有脚本需添加执行权限: $$ chmod +x /path/to/script.sh $$ 2. 生产环境建议设置至少5分钟延迟,避免数据丢失[^1] 3. 可通过`shutdown -c`命令取消预定重启 4. 建议配合日志记录功能,如: ```bash echo "$(date): 重启命令已执行" >> /var/log/reboot.log ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值