利用SCP命令實現遠程自動備份
来源:互联网 发布:如何退出linux命令 编辑:程序博客网 时间:2024/06/01 09:42
在服务器本机上备份数据,一旦该机器硬盘出现故障,如果事先没有备份,数据的恢复将会耗时耗力,甚至严重时将彻底破坏而无法重现天日。远程手动备份数据费时费力且不及时,到机房现场备份再取回数据也比较麻烦。最好的方法就是通过脚本实现远程自动互备。但远程无论是通过ssh登陆,还是通过scp拷贝文件都需要输入密码。为了解决这个问题,首先需要实现不需要密码的SSH登陆设置两机的互信访问,这样再通过crontab就可以通过脚本定时通过scp命令来做远程备份了。
1. 设置无需密码的ssh登陆,方法如下:
假设250和252两台SUSE LINUX服务器,现在需要在250机上用root登陆252机,并且不需要输入密码,那我们可以按照下面的步骤来做:
1)在250机上生成钥匙对,执行以下命令:
#ssh-keygen -t rsa
Generating public/private rsa keypair.
Enter filein 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 keyhas been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
f6:61:a8:27:35:cf:4c:6d:13:22:70:cf:4c:c8:a0:23
这样,在/root/.ssh/路径下会生成id_rsa,和id_rsa.pub,其中id_rsa是密钥,id_rsa.pub是公钥。
2)把在250机生成的id_rsa.pub拷贝到252机上,假设拷贝到252机的临时目录下,例如:
#scp /root/.ssh/id_rsa.pub root@192.168.1.250:/tmp
3)用root帐号登陆252机,进入其主目录,创建authorized_keys文件,并设置好权限。
#cd root/.ssh
#cat /tmp/id_rsa.pub >>authorized_keys(也可以cp /tmp/id_rsa.pub authorized_keys)
#chmod 400 authorized_keys(注:如果不成功,需要此句chmod 700 /root/.ssh )
#rm -f /tmp/id_rsa.pub
在250机上登录252机(ssh 192.168.1.252),发现不要密码可以直接进入了.
注:
authorized_keys文件的权限很重要,如果设置为777,那么登录的时候,还是需要提供密码的。加密认证不支持高权限的不安全设置。
在252的机器上同理设置即可实现两台服务器之间的互信访问。
或者也可以同时加上RSA和DSA认证来实现。
1.主机250:
ssh-keygen -t rsa
ssh-keygen -t dsa
cat id_rsa.pub >> authorized_keys
cat id_dsa.pub >> authorized_keys
scp /root/.ssh/authorized_keys >>主机252:/root/.ssh/
2.主机252:
ssh-keygen -t rsa
ssh-keygen -t dsa
cat id_rsa.pub >> authorized_keys
cat id_dsa.pub >> authorized_keys
scp /root/.ssh/authorized_keys >>主机250:/root/.ssh/
注:如果三台主机间建立互信访问,可以先把其中的两台建立互信访问,然后把这两台上任一台的authorized_keys拷贝到第三台上,在第三台生成id_rsa.pub和id_dsa.pub并追加到authorized_keys里,把此文件再拷回那两台上覆盖原authorized_keys即可。
2. 编辑crontab文件
# vi /etc/crontab
例如设置每天12:50执行自动拷贝252上的某个指定目录下的文件:
50 12 * * * root scp /home
如图:
在另外一台上进行同上设置:
# vi /etc/crontab
例如设置每天13:05执行自动拷贝250上的某个指定目录下的文件:
05 13 * * * root scp /home
3、至此实现了双机的互备。
注:#scp -p 7455 -r /home/lnmp0.4/
-p参数表示跟要连接的端口号(默认端口22,更改端口后要加p参数)
-r 参数表示递归复制(即复制该目录下面的文件和目录)
下面一個例子:
Phamr(10.178.1.54) oracle 賬號下有排程
00 12 2 * * $HOME/dba_cmd/backup/exp_phamwda1_tb.sh > /dev/null 2>&1
00 12 4 * * $HOME/dba_cmd/backup/exp_phabwda1_tb.sh > /dev/null 2>&1
生成exp 文件到/PHAMR_ARCH /exp_phabwda1_dir和 /PHAMR_ARCH /exp_phamwda1_dir。
目的:將exp文件通過scp命令自動複製到nhpabk01(10.189.128.168)的/disk/DAT72/phamr/back_temp
問題:由於排程是在oracle用戶下執行的,而nhpabk01下沒有oracle賬號,如何實現oracle到 root用戶的等價
另一個例子:
Phbmw:
[root@dbp ~]$ cd /root/.ssh
[root@dbp .ssh]$ ssh-keygen -t rsa
生成的id_rsa.pub 公匙文件 scp 到某臨時目錄下,再將其內容追加到/root/.ssh/ authorized_keys文件內
[root@nhpabk01 .ssh]# cat /disk/DAT72/phamr/back_tmp/id_rsa.pub >> authorized_keys
- 利用SCP命令實現遠程自動備份
- 【Linux】-利用scp命令远程上传下载文件
- scp命令
- scp命令
- scp命令
- scp 命令
- scp命令
- scp命令
- scp命令
- SCP命令
- scp 命令
- scp命令
- scp 命令
- SCP 命令
- scp 命令
- scp命令
- scp命令
- scp 命令
- HttpClient多线程并发问题
- MySQL 主从复制和读写分离实现
- FancyBox API列表
- 《RESTful Web APIs中文版》
- MongoDB在window下的安装
- 利用SCP命令實現遠程自動備份
- iOS多线程系列(1)NSThread
- solr1.4 中SearchHandler使用的httpclient在高并发可能出现的问题
- 十年技术,不要再迷茫[转]
- IAR FOR ARM 7.2.2破解方法
- iOS多线程系列(2)NSOperation
- C#数组
- 别的程序员是怎么读你的简历的
- solr的copyFeild用法(改变各个feild的权重,修改打分结果)-注意!