linux 远程数据库备份脚本


######## 拷贝脚本 ########
#1.远程拷贝命令, 创建拷贝脚本
vi mysqldatabak.sh

#!/bin/bash
date=$(date +%Y%m%d%H%M%S) #设置时间变量,括号内是设置时间的格式
mysqldump -uroot -p'数据库密码' -A > /data/home/mysql_data_bak/$date-文件名.sql #MySQL所有数据导出复制到/data/home/mysql_data_bak/$date-文件名.sql文件中 注意:yum安装最好是用命令mysqldump的绝对路径而用tar包安装,可以不用
if [ $? -eq 0 ];then #判断上次执行命令是否正确,正确为0,不正确非0
echo "数据备份完成" #正确执行,输出结果
scp /data/home/mysql_data_bak/ /$date-文件名.sql 拷贝机IP:/data/home/mysql_data_bak/  #将导出的文件远程复制到B主机上的/data/rsyncdata/databak/文件中
sleep 10 #睡眠10秒
echo "远程备份完成" #输出结果
#rm -rf /data/home/mysql_data_bak/$date-ruxin.sql #删除本地主机导出的数据
fi

 

#2.赋给文件权限
chmod +x mysqldatabak.sh


#编辑执行定时任务
crontab -e #结束
00 01 * * * sh /data/home/mysql_data_bak/mysqldatabak.sh


#3.查看定时任务是否执行
ps -le | grep cron

#参考
[root@ecs-f3b6 mysql_data_bak]# ps -ef|grep cron
root 1470 1 0 Sep27 ? 00:00:05 /usr/sbin/crond -n
root 16348 14762 0 11:06 pts/0 00:00:00 grep --color=auto cron

 

 

 

 

######## 设置远程拷贝无需命令 ########
#需求场景:现有主机A、主机B,要从主机A复制文件到主机B

1.在被拷贝机子上,执行: ssh-keygen -t rsa , 在" /root/.ssh " 生成 id_rsa id_rsa.pub 文件,
2.把 文件id_rsa.pub, 放到拷贝机子上
scp /root/.ssh/id_rsa.pub 远程拷边机IP:/root/.ssh/authorized_keys
3.再次把 A 主机上的文件拷贝到 主机B 上就不需要输入密码


备注:
crontab文件的说明:
用户创建的crontab文件中,每一行都代表一项定时任务,每行的每个字段代表一项设置,它的格式每行共分为六个字段,前五段是时间设定字段,第六段是要执行的命令字段。
格式如下:minute hour day month week command
参数说明:
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是Linux系统命令,也可以是自己编写的脚本文件。

posted @ 2021-11-18 11:22  lypsoft  阅读(286)  评论(0编辑  收藏  举报