定时执行脚本

定时执行脚本,第1张

crontab -l查看任务

crontab -e便捷定时编辑任务

当我们编辑完定时任务过后,记得重载一遍crond

systemctl reload crond.service

启动、停止、重启服务↓

systemctl start crond.service

systemctl stop crond.service

systemctl restart crond.service

为了方便我们可以把crontab设置成开机自启 在 /etc/rc.d/rc.local 脚本中加入 systemctl start crond.service即可

查看定时任务

[root@localhost ~]# crontab -l

1 1 * * *  mysql  -uzabbix -pzabbix zabbix -e "CALL partition_maintenance_all('zabbix')"

每天22点1分执行mysql  -uzabbix -pzabbix zabbix -e "CALL partition_maintenance_all('zabbix')"命令

查看脚本执行情况

[root@localhost ~]# cat /var/log/cron

Apr 24 22:01:01 localhost CROND[11793]: (root) CMD (mysql  -uzabbix -pzabbix zabbix -e "CALL partition_maintenance_all('zabbix')")

Apr 24 22:01:01 localhost CROND[11794]: (root) CMD (run-parts /etc/cron.hourly)

Apr 24 22:01:01 localhost run-parts(/etc/cron.hourly)[11794]: starting 0anacron

Apr 24 22:01:01 localhost run-parts(/etc/cron.hourly)[11804]: finished 0anacron

Apr 24 22:01:01 localhost run-parts(/etc/cron.hourly)[11794]: starting 0yum-hourly.cron

Apr 24 22:01:01 localhost run-parts(/etc/cron.hourly)[11810]: finished 0yum-hourly.cron

Apr 24 22:17:20 localhost crontab[11873]: (root) LIST (root)

1、建立自动备份脚本

为了使数据库备份和恢复的符合我们的实际要求(备份保留七天,每天凌晨备份一次),用一段符合要求的Shell脚本来实现整个备份过程的自动化。

[root@mysqltest ~]# vim mysql-backup.sh

#!/bin/bash

##作者:Barlow##

##最后修订:2013-6-25##

#脚本作用:备份Mysql数据库

#

#设定备份保留天数K

K=7

#

TODAY=`date '+%Y%m%d'`

KDAY=`date -d "$TODAY - $K day" '+%Y%m%d'`

BACKDIR=/var/mysqlbak/$TODAY

KDAYDIR=/var/mysqlbak/$KDAY

mkdir -p $BACKDIR

#

# The Password of MySQL

ROOTPASS=******* ##将*替换为实际mysql数据库的root密码

#

# Get the Name of Database

DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`

#

# Backup with Database

for dbname in $DBLIST

do

mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy

done

#

#删除过期备份

if [ -d "$KDAYDIR" ]then

rm -rf $KDAYDIR

exit

fi

改变脚本权限,root具有完全权限,其他用户没有任何权限:

[root@mysqltest ~]# chmod 700 mysql-backup.sh

运行一次脚本:

[root@mysqltest ~]# ./mysql-backup.sh

查看运行结果:

[root@mysqltest ~]# ll /var/mysqlbak/20130625/

mysql/ wordpress/

[root@mysqltest ~]# ll /var/mysqlbak/20130625/

总用量 8

drwxr-x---. 2 mysql mysql 4096 6月 25 14:26 mysql

drwxr-x---. 2 mysql mysql 4096 6月 25 14:26 wordpress

可以看到备份已经成功完成。

2、创建自动任务每天运行

[root@mysqltest ~]# crontab -e

00 01 * * * /root/mysql-backup.sh

##每天凌晨1点运行一次


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8604531.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存