博客涉及的相关软件仅供学习参考,不做任何商业用途以及无相关法律责任!如有不妥请联系QQ 3278688677 进行更正。
一、crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件如果crontab命令无效则系统需要安装配置定时任务器:
yum -y install crontabs #安装
chkconfig crond on #设为开机启动,先要安装chkconfig(yum install chkconfig)
/etc/init.d/crond start #启动
/etc/init.d/crond stop #停止
/etc/init.d/crond restart #重启
/etc/init.d/crond reload #不中断服务,重新载入配置
二、脚本详情:数据库安装位置/morik/sql/mysql_5.7.26,新备份数据存放位置/morik/sql/backup,超过7天后的备份数据/morik/sql/backupold。蓝色地方根据项目实际情况做调整。
vim /morik/sql/backup.sh
#!/bin/bash
db_user="root"
db_passwd="数据库远程密码"
db_name="数据库名"
cd /morik/sql/backup
echo "you are in bakmysql directory now"
mv 数据库名* /morik/sql/backupold
echo "Old databases are moved to bakmysqlold folder"
backup_dir="/morik/sql/backup"
time=$(date +"%Y-%m-%d")
/morik/sql/mysql_5.7.26/bin/mysqldump --socket=/morik/sql/mysql_5.7.26/mysql.sock -u$db_user -p$db_passwd $db_name > "$backup_dir/$db_name"-"$time.sql"
echo "your database backup successfully completed"
SevenDays=$(date -d -7day +"%Y-%m-%d")
if [ -f /morik/sql/backupold/pashanhu-$SevenDays.sql ]
then
rm -rf /morik/sql/backupold/pashanhu-$SevenDays.sql
echo "you have delete 7days ago bak sql file "
else
echo "7days ago bak sql file not exist "
echo "bash complete"
fi
三、触发器配置
crontab -e #新增定时任务
粘贴下列一行配置(每天凌晨2点定时执行脚本):
00 02 * * * /morik/sql/backup.sh
脚本和脚本新建文件夹授权:
chmod +x /morik/sql/backup.sh
mkdir /morik/sql/backup
mkdir /morik/sql/backupold
chmod -R 777 /morik/sql/backup
chmod -R 777 /morik/sql/backupold
备注:crontab文件的格式:
minute hour day month weekday username command
minute:分,值为0-59
hour:小时,值为1-23
day:天,值为1-31
month:月,值为1-12
weekday:星期,值为0-6(0代表星期天,1代表星期一,以此类推)
username:要执行程序的用户,一般设置为root
command:要执行的程序路径(设置为绝对路径)例如:/root/shell/check_cpu.sh
/root/shell/check_cpu.sh #要自动执行的脚本程序路径
chmod +x /root/shell/check_cpu.sh #对脚本文件添加执行权限,否则不能执行