记一次sshpass备份数据(mysql)

第一步:安装sshpass

第二步:执行如下命令,输入yes,注意:第一次使用sshpass时,需要执行ssh 或者scp

scp -P 4022 -r oa.txt backups@112.30.112.123:/home/backups/dbbak/foa/mysql/

 

 输入yes后直接退出即可

第三步:创建自动发布脚本 auto-backup.sh,内容如下:cd /root/backupcurrentDate=`date +%Y%m%d`echo 开始备份 $currentDate

cd /root/backup
mkdir $currentDate

docker exec -i mysql323 mysqldump -uroot -pAht@app@mysql aht-oa > $currentDate/oa.sql
docker exec -i mysql323 mysqldump -uroot -pAht@app@mysql aht-boot > $currentDate/boot.sql
docker exec -i mysql323 mysqldump -uroot -pAht@app@mysql nacos > $currentDate/nacos.sql

echo mysql数据开始打包
tar -czvf $currentDate.mysql.tar.gz $currentDate

echo mysql数据开始远程复制
sshpass -pah@FY2021BAK! scp -P 4022 -r $currentDate.mysql.tar.gz backups@112.30.112.123:/home/backups/dbbak/foa/mysql/

echo minio数据开始备份
echo "/root/mino/ahtfiles/temp/$currentDate"
if [ -d "/root/mino/ahtfiles/temp/$currentDate" ];then
  tar -zcvPf $currentDate.minio.tar.gz /root/mino
  sshpass -pah@FY2021BAK! scp -P 4022 -r $currentDate.minio.tar.gz backups@112.30.112.123:/home/backups/dbbak/foa/minio/
else
  echo "minio数据没有可以备份的数据"
fi

rm -rf ${currentDate}*

  

 

第四步:在/etc/crontab中添加调度计划

50 23 * * * root /root/backup/auto-backup.sh > /root/backup/auto-backup.log 2>/root/backup/auto-backup.error

  

  

 

posted @ 2022-01-26 17:18  zhaoxi1  阅读(128)  评论(0)    收藏  举报