异地登录linux服务器,Linux服务器远程自动异地备份

异地备份可以防止本地服务器硬盘故障以及攻击之类等,防止数据丢失。

在自动备份中,我们用到一个命令scp 用来远程复制文件,类似于ftp的作用。因为我们需要实现的是自动备份,scp是需要输入密码认证的,有一个交互过程,那么我们现在就必须通过密钥来认证,在备份过程需就无需输入密码了。

由于密钥认证是用本地的私钥去解锁目标服务器的公钥实现登陆。所以在本地机器上生成公钥和私钥。

[root@rhel6www ~]# ssh-keygen -t rsa          //生成密钥 -t rsa 加密类型

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):                   //直接回车

Enter passphrase (empty for no passphrase):                //直接回车 (为密钥密码验证)

Enter same passphrase again:                 //直接回车

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

8f:1f:3c:4b:4c:7c:1c:7d:53:02:87:c3:b8:e7:b4:da root@rhel6www

The key’s randomart image is:

+–[ RSA 2048]—-+

|           o.oo .|

|          . +o ..|

|           ……|

|         …o. ..|

|        S o+o.   |

|         * .o    |

|        . Bo     |

|         o.+E    |

|          o      |

+—————–+

[root@rhel6www ~]#

在/root/.ssh/下会生成id_rsa(私钥)和id_rsa.pub(公钥)。

将id_rsa.pub复制到远程计算机并更名为:/root/.ssh/authorized_keys

可以通过 ssh-copy-id -i id_rsa.pub root@172.17.1.121 复制到目标服务器,会自动创建authorized_keys文件并修改400权限。通过ssh-copy-id好处就是,当有多个客户端通过密钥方式连接同一个目标服务器的时候,此命令会将客户端生成的公钥追加到authorized_keys中,免去手动修改的麻烦。这里通过手动方式上传到目标服务器。

[root@rhel6www .ssh]# scp id_rsa.pub root@172.17.1.121:/root/.ssh/authorized_keys

root@172.17.1.121’s password:                //我们可以看到默认是需要密码认证的

id_rsa.pub                                   100%  395     0.4KB/s   00:00

[root@rhel5 ~]# chmod 400 authorized_keys             //在远程服务器中更改为400权限,否则还会提示需要密码的

[root@rhel6www .ssh]# touch b               //测试经过密钥认证后是否还需要密码

[root@rhel6www .ssh]# scp b root@172.17.1.121:/root/.ssh/c   //如果ssh运行在非22端口上,请在scp后加-P 指定端口号b                                            100%    0     0.0KB/s   00:00

[root@rhel6www .ssh]#                //没有提示需要密码,说明密钥认证配置成功。

现在就开始写脚本,订制备份时间、文件等。自由发挥,比如说我之前有个自动备份数据库的脚本:

#!/bin/bash

backdir="/mnt/sdb1/backup"

dirname="$(date +%Y-%m-%d-%H-%M)"

DIR="www db"

for dir in $DIR

do

mkdir -p $backdir/$dirname/$dir

done

# web backup

www="www.tar.gz"

tar zcfP $backdir/$dirname/www/$www /var/www

# database backup

clubdb="club.tar.gz"

cd /var/lib/mysql

mysqldump --opt -u root -p --password=YOURDATABASEPASSWORD club > $backdir/$dirname/db/club.sql

tar zcfP $backdir/$dirname/db/$clubdb $backdir/$dirname/db/club.sql

$backdir/$dirname/db/$clubdb root@172.17.1.121:/root/test_backup

rm -rf $backdir/$dirname/db/club.sql

添加任务计划:

#crontab -e

#24 15 * * * /back.sh

专注于 服务器运维与web架构

E-mail:venus#rootop.org

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值