刚上线的服务器需要备份日志,要备份到另一台服务器上去,为了减少工作量,采用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即可,否则还是需要输入设置的密码

=============================================================

下面是具体的源码,很简单的功能:

#!/bin/bashngnix_day=$(date -d last-day +%Y%m%d)node_day=$(date -d yesterday +%Y-%m-%d)#backup xx.172.129.xx node4ssh root@xx.172.129.xx "sh /logdata/sh/node4_backup.sh"sleep 1mscp root@xx.172.129.xx:/logdata/access_$ngnix_day.tar.gz /logdata/nginxlog/node4-access_$ngnix_day.tar.gzscp root@xx.172.129.xx:/logdata/node1-$node_day.log /logdata/nodelog/node4-node1-$node_day.logscp root@xx.172.129.xx:/logdata/node2-$node_day.log /logdata/nodelog/node4-node2-$node_day.logscp root@xx.172.129.xx:/logdata/node3-$node_day.log /logdata/nodelog/node4-node3-$node_day.logdatesleep 1mdateif [ -f /logdata/nodelog/node4-node1-$node_day.log ];then ssh root@xx.172.129.xx "rm -f /logdata/node1-$node_day.log";elseecho "The node4-node1-$node_day.log is not exists!" >>/logdata/sh/node.txtfiif [ -f /logdata/nodelog/node4-node2-$node_day.log ];then ssh root@xx.172.129.xx "rm -f /logdata/node2-$node_day.log";elseecho "The node4-node2-$node_day.log is not exists!" >>/logdata/sh/node.txtfiif [ -f /logdata/nodelog/node4-node3-$node_day.log ];then ssh root@xx.72.129.xx "rm -f /logdata/node3-$node_day.log";elseecho "The node4-node3-$node_day.log is not exists!" >>/logdata/sh/node.txtfi

=============================================================

问题:

①、第一次执行scp的时候会出现warning,这时候要输入“yes”。所以脚本编写完一定要手动执行一遍,防止定时执行失败

②、在win下编写shell时,换行符为:\n\r,而在linux下为:\n ,因此在win下编写的脚本在linux下运行会报错,尽量避免这个问题。

linux整盘远程备份,linux实现自动远程备份(scp+ssh)相关推荐

  1. 压缩备份日志 java_自动压缩备份日志文件到指定备份目录脚本

    #!/bin/bash ############################################################## #***#***功能: #***备份日志目录的N天 ...

  2. mysql远程登录备份_mysql实现自动远程备份一办法(转)

    一.实现本地自动备份数据库很简单: 1.以root身份登陆 2.计划任务(每天的3:30自动执行 /usr/bin/mybackup) crontab 0 3:30 * * * /usr/bin/my ...

  3. linux双机(多机)自动互备份方案

    我们公司有两台LINUX服务器,每个服务器只有一个硬盘.所以备份的问题就显得特别重要.我们装有mysql数据库.当然同时也要解决mysql备份的问题. 目   的:host 机器(最终所有备份都在其上 ...

  4. oracle exp 二进制,Oracle备份之exp自动逻辑备份(二)

    exp是oracle的逻辑备份,是将数据库中的数据导出到二进制数据库文件. exp的三种导出方式 1.表方式(T方式),将指定表的数据导出. 2.用户方式(U方式),将指定用户的所有对象及数据导出. ...

  5. oracle exp语句 按日期命名,Windows平台下Oracle数据库exp全备脚本,根据时间保留备份数及自动上备份至FTP...

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. @echo off SET ORACLE_SID=orcl SET NLS_LANG=AM ...

  6. 爱数oracle备份软件,爱数备份软件下载 爱数备份卫士 数据备份软件

    这款爱数备份软件是一款功能丰富的数据备份软件,又叫爱数备份卫士,内置强大的备份引擎源自于爱数多年的不懈努力,可帮助用户轻松完成日常工作文档.图片.邮件等资料的备份,爱数备份卫士为用户提供领先的备份.容 ...

  7. mysql中的rman备份_RMAN优缺点及RMAN备份及恢复步骤

    RMAN优缺点及RMAN备份及恢复步骤 --以下部分来自网络转摘,仅供参考 和OS命令备份方式相比,使用RMAN的优点 1 备份执行期间不需要人工干预,因此减少了误操作的机会: 2 可以有效的将备份和 ...

  8. 利用七牛存储7天远程自动备份LINUX服务器

    受服务器空间制约,我们不可能在VPS上每天都备份一份新的网站数据,一是没必要,二是占空间.我们折中一下,采用星期命名,每次备份将覆盖上星期同一天的文件.从而只备份7份数据,不至于占用特别大的空间. 如 ...

  9. ssh备份linux系统,远程自动备份 rsync+ssh+sshpass

    实现功能:远程服务器之间的互相自动备份 rsync备份的优点绝大多数运维人员都清楚,简而言之就是只备份改动过的文件,减少数据传输量.同时它可以通过ssh协议传输数据,以利数据安全. 但ssh有个缺点, ...

  10. Linux用户登录自动拷贝文件,linux下ssh远程登录/scp远程复制文件/rsync远程同步命令的自动登录...

    原文出处: http://blog.csdn.net/five3/article/details/8648484 最近需要写一个脚本备份各个服务器上的程序到一个指定服务器上,本来以为查查rsync命令 ...

最新文章

  1. 被前公司辞退后,前领导打电话命令你给前同事解释代码,该怎么办?
  2. C语言 字符串的读取
  3. SIFT原理与源码分析:DoG尺度空间构造
  4. python 文本转json_在python中将文本文件转换为json
  5. 4.5. Rspamd
  6. ADO学习(一)基础理论
  7. 【广州】Web前端工程师
  8. dubbo 相关面试题 有用
  9. html设置窗口最小大小,调整HTML 5画布的大小以适应窗口
  10. Jquery各种前台效果JQ
  11. SourceTree 免注册
  12. c语言字符全排列数组,使用c语言递归实现字符串的全排列
  13. 概率论的学习和整理--番外5:等差数列求和公式,等比数列求和公式,以及比较 数列,函数,级数等相似概念
  14. ems苹果专线投递速度_苹果官网运抵速度让人欲罢不能
  15. 互动课件制作 html,如何实现多图版互动式图片课件的制作
  16. 字幕集合保存为srt文件
  17. Emscripten 单词_背单词分享 | 我觉得实用的背单词方法
  18. unity obi插件
  19. Android:规范命名,让合作更加愉快
  20. 如何在电脑上查看手机网页源代码?

热门文章

  1. python 3d绘图kmeans_使用python绘制3d的图形
  2. 封装系统驱动放哪里啊_MPS做一体化电机驱动方案有三大绝招
  3. 7-3 小L的难题 (15 分)
  4. python smtplib模块_python使用smtplib模块发送邮件
  5. 软件工程中逻辑覆盖的例题_干货丨一文读懂:飞算全自动软件工程平台如何提升软件开发效率...
  6. java log4j 热部署_Java 调式、热部署、JVM 背后的支持者 Java Agent
  7. nyoj 弹球II(数学 模拟)
  8. linux实验项目,实验--项目2_Linux基本命令
  9. centos7修改ip地址命令_linux nmcli命令详解
  10. 计算机电路基础电压比较器电路图,计算机电路基础期末复习.doc