Day 26 排程管理

Day 26 排程管理

假设今天在架设一台服务器运作使用时,但很怕资料库或程序被误删等状况,这时候就需要做好系统备份,排程就可以在特定时间内做备份的动作,但这类的动作基本上会在夜间时段作执行。

参数

  • -u 编辑(user)其他使用者的排程内容。只有 root 权限才可以使用。
  • -l 列出(list)排程。
  • -e 编辑(edit)排程。
  • -r 删除(remove)排程。

检视排程

检视当前使用者正在执行的排程

每一个使用者用户,都有自己的排程管理,所以要查看自己定义的排程,就可以透过以下指令。

[root@localhost ~]# crontab -l

系统使用者检视特定使用者排程

[root@localhost ~]# crontab -u [使用者帐户] -l

编辑排程

编辑当前使用者的排程

进入排程内容,编辑跟 vi 的方式差不多。

[root@localhost ~]# crontab -e

系统管理者编辑特定使用者排程

编辑特定使用者排程内容,跟检视特定使用者排程一样。

[root@localhost ~]# crontab -u [使用者帐户] -e

删除排程

删除当前使用者的所有排程

[root@localhost ~]# crontab -r

系统管理者删除特定使用者所有排程

[root@localhost ~]# crontab -u [使用者帐户] -r

排程服务读取设定档

排程服务会读取排程的设定档 /etc/crontab,档案内容分为「环境设定」与「排程工作」。

[root@localhost ~]# cat /etc/crontab

# 环境设定
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root


# 排程工作
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

环境设定

依照CentOS7 的环境设定,预设都会以 bash 的 shell。
MAILTO 则是会将执行排程工作的输出讯息以邮件方式寄给使用者。

排程时间

栏位编号 说明 可设定值
1 分钟 0分 到 59分
2 小时 凌晨 0时 到 23时
3 日期 每月1日 到 31日
4 月份 1月 到 12月,可用英文简称,例如:Jan、Feb...
5 星期 0 到 7,0,7 都代表星期日,可用英文简称,例如:Mon
6 使用者帐号 依照哪个使用设定的排程去执行该排程
7 排程工作指令 自行定义排程指令

特殊符号

特殊符号 说明
* 任意时间
, 分隔不同时间点
- 时间区间
/n 每隔n单位执行

特殊排程时间

设定值 排程时程 备注
@reboot 每次重新开机就执行
@yearly 每年1日执行 0 0 1 1 *
@annually 同上 0 0 1 1 *
@monthly 每月一号零时零分执行 0 0 1 * *
@weekly 每周星期天零时零分执行 0 0 * * 0
@daily 每天零时零分执行 0 0 * * *
@midnight 同上 0 0 * * *
@hourly 每小时零分执行 0 * * * *

自行定义排程时间

设定值 排程时程 备注
01 * * * * 每小时的第1分钟执行
00 04 * * * 每天凌晨04点00执行
00 01 * * 1 每个礼拜星期一的凌晨01点00执行
00 01 * * Mon 同上
30 08 15 * * 每个月的15日08点30分执行
01 * 4 May * 每年五月4日每小时的第一分钟执行
*/10 * * * * 每10分钟执行一次
00 10-15 * * * 每天从早上10点到下午15点,整点执行一次
00,30 * * * * 每小时的00分及30分各执行一次

范例操作

每天凌晨1点、下午13点执行一次备份

0 1,13 * * * /home/web/crontab/backup.sh

每30分钟执行一次。

*/30 * * * * /home/web/crontab/calculation.sh

使用特殊排程时间,每天0时0分进行备份

@daily /home/web/crontab/backup.sh

<<:  [Day26]Flutter Netflix UI ListView中第一个可见的Item显示,其他都变暗

>>:  Day 26 Quantum Protocols and Quantum Algorithms

网路常常不稳的天涯若比邻

如果你问上班族,公司的网路稳不稳?喜不喜欢视讯开会?大概八成以上持否定的态度。另外,在号称大云端、大...

23 - 建立结构化的 Log (1/4) - Elastic Common Schema 结构化 Log 的规范

建立结构化的 Log 系列文章 (1/4) - Elastic Common Schema 结构化 ...

食谱资料库表格建立

Icebear今天的进度只有建立资料库,虽然昨天已经把架构图画好,但是建立资料库需要一些时间,所以I...

React Hooks - useRef

在介绍 useRef 之前,先来介绍 ref。 在 React 中如果我们想要获取 DOM 或获取...

css float

float称为浮动元素,可以想像是加上这个元素的物体都会飘浮在空中 接下来示范一些用法来认识这个元素...