Lazy loaded image
技术分享
🔄Debian定时执行命令crontab与自动化脚本
字数 2252阅读时长 6 分钟
2021-7-2
2025-9-2
type
Post
status
Published
date
Jul 2, 2021
slug
crontab
summary
tags
工具
建站
category
技术分享
icon
password

crontab

Debian的定时执行命令Crontab,相当于Windows的计划任务,通过编写设定文件可以组合出复杂的执行时段,让命令的执行更加有效率。

0.预备动作

虽然Debian系统比较干净,但大多数也应该自带了crontab,如果确实没有那就装一下:
  • 第一步更新apt
  • 然后开始安装了
  • 漫长的等待后就可以启动了
先找到service在哪
  • 这样你就有了service具体目录了,然后

1. cron设置文件在Debian系统下的位置

  • 大致内容如下:
需要设定的是 # m h dom mon dow user command 下面的部份由左至右相对应的意思为:
分0-59   时0-23   日1-31   月1-12   周0-7  执行命令的用户   命令
其中比较有意思的是:周,0和7都代表星期日

2. 可以使用的特殊符号有

  • (星号) 代表所有时间都接受, (逗号) 代表同一个分类可以有多少个值
  • (减号) 代表在这个时段内执行/n 代表每n个时间就执行一次

3. 范例:

30 12 * * * command:   每天12:30执行command
0 6,12 15 * * command:每月15日的6:00和12:00执行command
10 8 1-15 6 * command:每年6月1至15日的8:10执行command
  • /5 * * * 7 command: 星期日每隔五分钟执行一次command

定时器语法:就是上面计划任务的第一部分。它决定了何时执行计划任务。

它包含5部分:1.分钟(0-59)2.小时(0-23)3.一个月的哪一天(1-31)4.一年中的哪个月(1-12)5.星期几(0是星期天)
星号  如果某个部分出现的是星号而不是数字,就是说明这个部分表示的时间全部会执行。

4. 示例:

  1. 下面的计划任务会一直运行 * * * * * [command]
  1. 下面的计划任务会在每个小时的0分时运行(就是每小时执行一次) 0 * * * * [command]
  1. 下面依旧是一个每小时运行一次的计划任务。不过是在每个小时的一刻钟时运行的(1:15,2:15......) 15 * * * * [command]
  1. 下面的计划任务每天执行一次,在2:30分30 2 * * * [command]
  1. 下面的计划任务是在每个月2号的午夜执行(比如:2010年2月2日00:00)0 0 2 * * [command]
  1. 下面的计划任务会在每周一的每个小时0分钟时执行一次0 * * * 1 [command]
  1. 下面的会每小时运行3次,在0分,10分,和20分时0,10,20 * * * * [command]
  1. 下面是用除号“/”表示每多少运行一次。/5 * * * * [command] 每5分钟运行一次00 */2 * * * [command] 每2小时运行一次 (* */2 * * * [command] 这种写法是错误的!)/1 * * * * root wget -O /var/log/cron.txt http://www.592.net/test.php 每分钟访问网站某PHP脚本一次,检查是否每分钟自动运行了PHP,可以查看 var/log/cron.txt文件,看下是否有网站PHP返回的内容就可以了!
  1. 还可以用“-”表示一个范围,如下表示5到10点的每个整点运行一次0 5-10 * * * [command]
  1. 另外还有一个特殊的时间关键字“@reboot”,就是每次重启服务器时运行计划任务@reboot [command]

5. 设定和管理计划任务

编辑Crontab,来设定计划任务。使用下面的命令,会在vi 里打开crontab的内容以供编辑:
cron是个linux下的定时执行工具,能在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但他不自动起来,能用以下的方法启动、关闭这个服务:编辑/etc/crontab 文件配置cron
cron服务每分钟不仅要读一次 /var/spool/cron 内的所有文件,还需要读一次 /etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/ //使用者运行的路径,这里是根目录 # run-parts 01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本 02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本 22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本 42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

6.重启命令:

自动化脚本

案例——备份Halo至挂载的对象存储上

1.脚本

2.crontab

 

举例

上一篇
Pake:一键打包网页生成轻量桌面应用,支持 macOS、Windows 和 Linux
下一篇
如何通过二维码连接,设置imToken观察钱包