一、定时任务调用脚本(以备份mysql为例)
#!/bin/bash
db_user="root"
db_passwd="xxxx"
#host="localhost"
DB_NAME=`/jysoft/mysql/mysql-8.0.25/bin/mysql -u$db_user -p$db_passwd --socket=/jysoft/mysql/mysql-3406/data/mysql.sock --port=3406 -e "show databases"|egrep -v "*schema|Database|sys|mysql|phpmyadmin|metinfo"`
#备份目录
backup_dir="/data/backup/mysql/3406"
mkdir -p $backup_dir
#时间格式
time=$(date +"%Y-%m-%d-%H-%M")
#mysql 备份的命令,注意有空格和没有空格
for db_name in $DB_NAME
do
/jysoft/mysql/mysql-8.0.25/bin/mysqldump -u$db_user -p$db_passwd --socket=/jysoft/mysql/mysql-3406/data/mysql.sock --port=3406 $db_name --quick --single-transaction --set-gtid-purged=OFF |gzip > "$backup_dir/$db_name"-"$time.sql.gz"
#[ $? -eq 0 ] && echo "database $db_name has been backuped successful" || echo "database $db_name has been backuped failed"
if [ $? -eq 0 ]; then
echo "database $db_name has been backuped successful"
else
echo "database $db_name has been backuped failed"
fi
done
find $backup_dir -name "*" -mtime +7 |xargs rm -rf
注意以上脚本内部参数,替换为你本机的
二、上传备份脚本至服务器某一个目录下
我这里上传至 /jysoft/sh/ 目录下
三、添加定时任务
1. 执行命令
crontab -e
2.写入定时任务调用的脚本及时间
* * * * * .........
分 时 日 月 周 命令
0 4 * * * /jysoft/sh/backup3406.sh > /dev/null 2>&1
3.赋权限
chmod +x backup3406.sh