返回列表 发帖

CentOS8使用计划任务

笺注:这是在 备份+还原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
图片3.png
2021-1-17 16:00


注释:这是给当前系统用户创建计划任务。



对于已经设置但还未执行(未到时间点)的计划任务,可以通过命令atq进行查询,但已经执行过的计划任务不会再出现在列表中。


根据编号查看计划任务的具体内容:( at -c 5
图片14.png
2021-1-17 16:01


正确的格式,如下图:
图片18.png
2021-1-17 16:01




系统用户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一次性计划任务

返回列表