笺注:这是在 备份+还原Zabbix 的基础上进行的。
crontab周期性计划任务的配置格式为:分、时、日、月、星期(1-7代表星期一至星期日)
- :表示一个连续的时间范围,如1-5,表示整数1、2、3、4、5
, :表示一个间隔的不连续时间范围,如3,7,9,表示整数3、7、9
/ :用来指定间隔频率,如“分”区块中的 */5 表示每隔5分钟
[root@centos8 ~]# which crontab
/usr/bin/crontab
确认进程crond在运行中:
[root@centos8 ~]# pgrep -l crond
1009 crond
确认开机自动运行进程crond:
[root@centos8 ~]# systemctl is-enabled crond
enabled
重启进程crond:
[root@centos8 ~]# systemctl restart crond
创建系统用户zhuohua:
[root@centos8 ~]# useradd -s /sbin/nologin zhuohua
[root@centos8 ~]# tail -1 /etc/passwd
zhuohua:x:1001:1001::/home/zhuohua:/sbin/nologin
给系统用户zhuohua创建一个crontab计划任务:( 1月 17日10时50分自动运行备份脚本;用户登不登录,任务都会执行)
[root@centos8 ~]# crontab -e -u zhuohua
追加:
50 10 17 1 * bash /scripts/backup_zabbix.sh
查看系统用户zhuohua的crontab计划任务:
[root@centos8 ~]# crontab -l -u zhuohua
50 10 17 1 * bash /scripts/backup_zabbix.sh
系统用户zhuohua对脚本文件要有执行的权限:
[root@centos8 ~]# ls -ld /scripts/
drwxr-xr-x 2 root root 30 1月 17 10:36 /scripts/
[root@centos8 ~]#
[root@centos8 ~]# chmod a+x /scripts/backup_zabbix.sh
[root@centos8 ~]#
[root@centos8 ~]# ll /scripts/backup_zabbix.sh
-rwxr-xr-x 1 root root 729 1月 17 10:36 /scripts/backup_zabbix.sh
系统用户zhuohua对备份存放的目录要有写入的权限:
[root@centos8 ~]# chmod -R 777 /home/backup/
[root@centos8 ~]#
[root@centos8 ~]# ls -ld /home/backup/
drwxrwxrwx 2 root root 6 1月 17 10:44 /home/backup/
使用系统用户zhuohua的crontab计划任务备份出来的文件:
[root@centos8 backup]# pwd
/home/backup
[root@centos8 backup]# ls -lh
总用量 19M
-rw-r--r-- 1 zhuohua zhuohua 16M 1月 17 10:50 zabbix_20210117105001.tar.gz
-rw-r--r-- 1 zhuohua zhuohua 3.6M 1月 17 10:50 zabbix_db-zabbix-20210117105001.sql
给系统用户root创建一个crontab计划任务:(星期一的23时50分重启服务器)
[root@centos8 ~]# crontab -e -u root
追加:
50 23 * * 1 /usr/sbin/init 6
查看系统用户root的crontab计划任务:
[root@centos8 ~]# crontab -l -u root
50 23 * * 1 /usr/sbin/init 6
清空系统用户zhuohua的所有crontab计划任务:
[root@centos8 ~]# crontab -r -u zhuohua
[root@centos8 ~]#
[root@centos8 ~]# crontab -l -u zhuohua
no crontab for zhuohua
######
at 一次性计划任务:
[root@centos8 ~]# which at
/usr/bin/which: no at in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
安装软件包:
[root@centos8 ~]# yum -y install at
[root@centos8 ~]# which at
/usr/bin/at
启动:
[root@centos8 ~]# systemctl start atd
默认就是开机自动启动:
[root@centos8 ~]# systemctl is-enabled atd
enabled
修改系统用户zhuohua的登录Shell:
[root@centos8 ~]# usermod -s /bin/bash zhuohua
[root@centos8 ~]# tail -1 /etc/passwd
zhuohua:x:1001:1001::/home/zhuohua:/bin/bash
创建at一次性计划任务:(自动创建文件)
[root@centos8 ~]# su - zhuohua
[zhuohua@centos8 ~]$ at 11:55 2021-1-17
at> touch /scripts/8.txt
注释:这是给当前系统用户创建计划任务。
对于已经设置但还未执行(未到时间点)的计划任务,可以通过命令atq进行查询,但已经执行过的计划任务不会再出现在列表中。
根据编号查看计划任务的具体内容:( at -c 5 )
正确的格式,如下图:
系统用户zhuohua对目录/scripts/要有写入的权限:
[root@centos8 ~]# chmod -R 777 /scripts/
[root@centos8 ~]#
[root@centos8 ~]# ls -ld /scripts/
drwxrwxrwx 2 root root 30 1月 17 10:36 /scripts/
到了指定的时间,文件自动创建成功:
[root@centos8 ~]# ll /scripts/*.txt
-rw-rw-r-- 1 zhuohua zhuohua 0 1月 17 11:55 /scripts/8.txt
相关文章:
CentOS8基本命令
Python3命令集
本地备份站点目录和数据库+crontab计划任务
远程备份站点目录和数据库+at一次性计划任务 |