标签:
刚上线的服务器需要备份日志,要备份到另一台服务器上去,为了减少工作量,采用linux的定时任务去自动执行。因服务器都是linux的,因此采用linux的远程复制scp命令。但这里涉及到一个问题,就是scp命令执行时需要输入密码,在网上大概搜集了下有两种方法:①一种是采用except方法(会存储明文密码);②采用ssh生成密钥的方式。这里我采用第二种方式。
备份方式:拷贝前一天的日志文件到备份服务器,再压缩后删除复制的本地文件。日志文件每天都会产生,格式都为access_20151214类似的文件名。
#首先用变量保存前一天的日期:
ngnix_day=$(date -d last-day +%Y%m%d)
接着备份文件
scp root@192.168.1.240:/logdata/access_$ngnix_day.log /logdata/nginxlog/
(scp... 源文件 目标路径)
将复制的日志文件压缩后再删除源文件(--remove-files)
tar -czf access_$ngnix_day.tar.gz access_$ngnix_day.log --remove-files
到这里已经完成备份操作
下面是实现scp无密码登录
1、在 A 上运行 ssh-keygen -t rsa 在/root/.ssh 下生成id_rsa 和 id_rsa.pub 两个文件
在/root/.ssh下复制备份一份id_rsa.pub 命名为 id_rsa.pub.A
2. 在 B 上也同样运行 ssh-keygen -t rsa
3、在 B 的 /root/.ssh 下创建authorized_keys文件 把A 中 id_rsa.pub.A 文件 传到 B /root/.ssh 下
通过 cat 命令 把id_rsa.pub.A 写到 authorized_keys 文件中
scp ./id_rsa.pub.A B的IP:/root/.ssh
cat id_rsa.pub.A >> authorized_keys
测试:最终从B服务器拷贝文件到A上,就无需输入密码了
在生成密钥的过程中,一直Enter即可,否则还是需要输入设置的密码
=============================================================
问题:
第一次执行scp的时候会出现warning,这时候要输入“yes”。
相关问题说明 http://www.myexception.cn/operating-system/1616889.html
标签:
原文地址:http://www.cnblogs.com/dvbbs2012/p/5047783.html