《多台服务器备份数据库》

1、备份的脚本

注意:在windows下面编辑的脚本是用不了的,要将别的脚本拷贝过来修改

2、#!/bin/sh

3、# mysql_backup.sh: backup mysql databases

4、

5、# db_user is mysql username

6、# db_passwd is mysql password

7、# db_host is mysql host

8、db="database"

9、db_user="username"

10、db_passwd="password"

11、db_host="127.0.0.1"

12、

13、scp_user="root"

14、scp_ip1="20.20.20.19"

15、scp_ip2="20.20.20.20"

16、scp_folder="/data/mysqlbackup"

17、

18、

19、# the directory for story your backup file.

20、backup_dir="/data/mysqlbackup"

21、# date format for backup file (dd-mm-yyyy)

22、time="$(date +"%F")"

23、

24、

25、# mysql, mysqldump and some other bin's path

26、MYSQL="/usr/bin/mysql"

27、MYSQLDUMP="/usr/bin/mysqldump"

28、MKDIR="/bin/mkdir"

29、RM="/bin/rm"

30、MV="/bin/mv"

31、GZIP="/bin/gzip"

32、TAR="/bin/tar"

33、SCP="/usr/bin/scp"

34、

35、# check the directory for store backup is writeable

36、test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0

37、

38、echo "$MYSQLDUMP $db > "$backup_dir/$time.$db.sql""

39、$MYSQLDUMP -u$db_user -p$db_passwd -hlocalhost $db > "$backup_dir/$db.$time.sql"

40、

41、cd "$backup_dir/"

42、

43、echo "$TAR cvfz "$db.$time.tgz" "$db.$time.sql""

44、$TAR cvfz "$db.$time.tgz" "$db.$time.sql"

45、

46、

47、echo "$SCP "$db.$time.tgz" "$scp_user@$scp_ip1:$scp_folder""

48、$SCP "$db.$time.tgz" "$scp_user@$scp_ip1:$scp_folder"

49、

50、echo "$SCP "$db.$time.tgz" "$scp_user@$scp_ip2:$scp_folder""

51、$SCP "$db.$time.tgz" "$scp_user@$scp_ip2:$scp_folder"

2、定期删除的脚本

#!/bin/sh

# the directory for story your backup file.

backup_dir="/data/mysqlbackup"

find $backup_dir -name "*" -mtime +15 -exec rm {} \;

3、跳板机登录正式的环境

跳板机:120.20.20.20

所有服务器登录:root/password

服务器

4、设置免密登录

操作步骤

以120.20.20.204服务器root账号免密登录120.20.20.205服务器root账号为例

120.20.20.204服务器操作

1)用root账号登录120.20.20.204服务器进入.ssh目录

cd ~/.ssh

2)执行命令ssh-keygen -t rsa生成私钥文件

ssh-keygen -t rsa

注意:当有问题的时候直接回车就好

注:执行该命令将会生成密钥文件和私钥文件id_rsa,id_rsa.pub

3)将生成的id_rsa.pub文件拷贝到120.20.20.205服务器~/.ssh目录

密码:password

120.20.20.205服务器操作

1)root账号登录120.20.20.205服务器进入.ssh目录

cd ~/.ssh

2)将公钥导入到~/.ssh/authorized_keys,

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3)设置权限

~/.ssh权限设置为700

~/.ssh/authorized_keys的权限设置为700

完成以上操作之后,服务器1上使用root账号登录服务器2 root账号就不需要用密码了

参考内容

1)ssh-keygen - 生成、管理和转换认证密钥,包括 RSA 和 DSA 两种密钥

密钥类型可以用-t选项指定。如果没有指定则默认生成用于SSH-2的RSA密

2)设置成功后,服务器1上指定账号只有登录服务器2指定账号免密,并非登录所有账号免密。

3)文件和目录的权限千万别设置成chmod 777.这个权限太大了,不安全,数字签名也不支持。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180103G0HHOM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券