使用scp在Linux主机之间进行定时备份

之间我们已经介绍过rsync的备份方法,但架设和使用起来相对复杂,而且如果你只是小部分备份,比如只是备份MySQL数据库,就没有必要使用rsync软件备份了。而之前的lftp增量备份似乎也不适合这种备份。在两台Linux主机,而且都是ssh权限,那就建议使用scp命令备份了,这种备份速度快且是加密传输,安全性高。

一、scp在建立连接中是需要密码认证的,所以我们第一步就是添加ssh公匙。
ssh终端运行

  1. ssh-keygen -t rsa

  结果如下
  Generating public/private rsa key pair.
  Enter file in which to save the key (/home/.username/ssh/id_rsa):#回车
  Enter passphrase (empty for no passphrase):#回车
  Enter same passphrase again:#回车
  Your identification has been saved in /home/.username /.ssh/id_rsa.
  Your public key has been saved in /home/.username /.ssh/id_rsa.pub.
  The key fingerprint is:
  38:25:c1:4d:5d:d3:89:bb:46:67:bf:52:af:c3:17:0c username@localhost
  Generating RSA keys:
  Key generation complete.
  会在用户目录~/.ssh/产生两个文件,id_rsa,id_rsa.pub
第二是把本地(10.1.1.1)主机上的id_rsa.pub文件拷贝到远程linux(10.1.1.2)主机的root用户主目录下的.ssh目录下,并且改名为authorized_keys
  即:

  1. scp /root/.ssh/id_rsa.pub root@10.1.1.2:/root/.ssh/authorized_keys

  这样在本地linux(10.1.1.1)主机上使用scp命令复制文件到远程linux主机(10.1.1.2)上将不提示输入密码了,直接复制了。反之亦然!
二、如何使用scp命令
https://www.centos.bz/2011/03/linux-scp-transfer-data-between-two-servers-command/
三、把命令放入脚本,如以下的脚本事例(请根据自己的具体情况修改)

  1. #!/bin/sh
  2. backpath=/var/ftp/backup/
  3. date=`date +%y%m%d`
  4. site=sitename
  5. tar zcf ${backpath}${site}"-"${date}.tar.gz /var/www/${site}
  6. scp ${backpath}${site}"-"${date}.tar.gz root@backupserver:/var/backup
  7. find ${backpath} -mtime +30 -exec rm {} \;

如果是备份MySQL数据库,请参考以下文章。
Linux VPS手动导入导出mysql数据库
四、使用crontab命令定时运行脚本。
https://www.centos.bz/2011/03/auto-run-task-crontab/

标签:备份Linux 发布于:2019-10-05 04:47:35