热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Linux通过脚本实现远程自动备份

文章标题:Linux通过脚本实现远程自动备份。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  考虑到在本机上备份数据,一旦该机器硬盘出现故障,数据无法取出。远程手动备份数据费时费力且不及时。最好的方法就是通过脚本实现远程自动互备。但远程无论是通过SSH登陆,还是通过scp拷贝文件都需要输入密码。为了克服这个问题,首先需要实现不需要密码的SSH登陆,这样就可以使用rsync,scp,rexec等命令来做的远程备份了。

  1. 设置无需密码的ssh登陆,方法如下:

  假设A,B两服务器,现在需要在A机上用root登陆B机,而不需要输入密码,那我们可按照下面的步骤来做:

  1)在A机上生成钥匙对,执行以下命令:

  ssh-keygen -t rsa

  Generating public/private rsa key pair.

  Enter file in which to save the key (/root/.ssh/id_rsa): /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:

  f6:61:a8:27:35:cf:4c:6d:13:22:70:cf:4c:c8:a0:23 root@host1

  这样,在/root/.ssh/路径下会生成id_rsa,和id_rsa.pub,其中id_rsa是密钥,id_rsa.pub是公钥。

  2)把在A机生成的id_rsa.pub拷贝到B机上,假设拷贝到B机的临时目录下,如:

  scp /root/.ssh/id_rsa.pub root@218.242.214.20:/tmp

  3)用root帐号登陆B机,进入其主目录,创建authorized_keys文件,并设置好权限。

  cd ~/.ssh

  cat /tmp/id_rsa.pub >>authorized_keys

  chmod 400 authorized_keys

  rm -f /tmp/id_rsa.pub

  4)测试

  在A机上转到root帐号,尝试登录B机。看看是不是不要密码.

  说明:

  authorized_keys文件的权限很重要,如果设置为777,那么登录的时候,还是需要提供密码的。

  记得将临时目录下的id_rsa.pub删除,养成个好习惯。

  本方法在Red Hat9.0上测试通过。

  2. 编辑crontab文件

  vi /etc/crontab

  如设置每天凌晨3:00执行cron.daily中的脚本:

  00 3 * * * root run-parts /etc/cron.daily

  3.编辑cron.daily中的脚本

  cd /etc/cron.daily/

  vi backupdb

  pg_dump -U postgres voipack > /voipack.sql

  pg_dump -U postgres regserver > /regserver.sql

  tar -cvjf /aavm.tgz.bz2 /usr/local/aavm

  tar -cvjf /oracle.tgz.bz2 /var/oracle

  scp /voipack.sql root@218.242.214.20:/root/218.242.214.23_backup

  scp /regserver.sql root@218.242.214.20:/root/218.242.214.23_backup

  scp /aavm.tgz.bz2 root@218.242.214.20:/root/218.242.214.23_backup

  scp /oracle.tgz.bz2 root@218.242.214.20:/root/218.242.214.23_backup

  将23上产生的备份文件copy到218.242.214.20:/root/218.242.214.23_backup路径下

  同样的方法可以将假设B服务器上的数据备份到A服务器,实现双机的互备。


推荐阅读
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • MVC模式下的电子取证技术初探
    本文探讨了在MVC(模型-视图-控制器)架构下进行电子取证的技术方法,通过实际案例分析,提供了详细的取证步骤和技术要点。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 网络安全实验:Telnet与SSH服务对比及抓包分析
    本实验旨在对比Telnet和SSH两种安全通信协议的服务差异,并通过搭建服务器和使用Wireshark抓包工具进行详细分析。 ... [详细]
author-avatar
sen0226714
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有