加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

Linux处事器数据按期同步和备份方法

发布时间:2018-09-20 22:46:05 所属栏目:业界 来源:生信宝典
导读:【新品产上线啦】51CTO播客,随时随地,碎片化进修 数据安详是做数据说明的人必要存眷的一大题目。对付我们说明的要害数据、行使的要害剧本都必要按期备份。 scp 最简朴的备份方法,就是行使cp (当地硬盘)或scp (长途硬盘)呼吁,给本身的功效文件新建一个拷
副问题[/!--empirenews.page--] 【新品产上线啦】51CTO播客,随时随地,碎片化进修

数据安详是做数据说明的人必要存眷的一大题目。对付我们说明的要害数据、行使的要害剧本都必要按期备份。

scp

最简朴的备份方法,就是行使cp (当地硬盘)或scp (长途硬盘)呼吁,给本身的功效文件新建一个拷贝;每有更新,再拷贝一份。详细呼吁如下:

  1. cp -fur source_project project_bak 
  2. scp -r source_project user@remote_server_ip:project_bak 

为了实现按期备份,我们可以把上述呼吁写入crontab措施中,配置天天的晚上23:00执行。对付长途处事器的备份,我们可以设置免暗码登录,便于自动备份。靠山输入免暗码登录处事器,获取免暗码登录处事器的要领。

Linux处事器数据按期同步和备份方法

  1. # Crontab format 
  2. # MinuteHourDayMonthWeekcommand  
  3. # * 暗示每分/时/天/月/周 
  4. # 天天23:00 执行cp呼吁 
  5. 0          23      *       *       *      cp -fur source_project project_bak 
  6. # */2 暗示每隔2分分/时/天/月/周执行呼吁 
  7. # 每隔24小时执行cp呼吁 
  8. 0          */24      *       *       *      cp -fur source_project project_bak 
  9. 0          0          */1     *        *     scp -r source_project user@remote_server_ip:project_bak 
  10.  
  11. # 其它crotab尚有个非凡的时刻 
  12. # @reboot: 开机运行指定数令 
  13. @reboot cmd 

rsync

cp或scp行使简朴,但每次执行城市对全部文件举办拷贝,耗时耗力,尤其是必要拷贝的内允许多时,一再拷贝对时刻和硬盘都是个消费。

rsync则是一个增量备份器材,只针对修悔改的文件的修悔改的部门举办同步备份,大大收缩了传输的文件的数目和传输时刻。详细行使如下 :

  1. # 把当地project目次下的对象备份到长途处事器的/backup/project目次下 
  2. # 留意第一个project后头的反斜线,暗示拷贝目次内的内容,不在方针目次新建project文件夹。留意与第二个呼吁的较量,两者实现同样的成果。 
  3. # -a: archive mode, quals -rlptgoD 
  4. # -r: 递归同步 
  5. # -p: 同步时保存原文件的权限配置 
  6. # -u: 若文件在远端做过更新,则差异步,停止包围远端的修改 
  7. # -L: 同步标记链接链接的文件,防备在长途处事器呈现文件路径等不匹配导致的软毗连失效 
  8. # -t: 保存修改时刻 
  9. # -v: 表现更新信息 
  10. # -z: 传输进程中压缩文件,对付传输速率慢时合用 
  11. rsync -aruLptvz --delete project/ user@remoteServer:/backup/project 
  12. rsync -aruLptvz --delete project user@remoteServer:/backup/ 

rsync所做的事变为镜像,担保远端处事器与当地文件的同一。假如当地文件没题目,远端也不会有题目。但假如产生误删或因措施运行错误,导致文件出题目,而在同步之前又没故意识到的话,远端的备份也就没了备份的意义,由于它也被破坏了。误删是较量轻易发明的,可以实时改正。但措施运行出题目,则不必然了。

rdiff-backup

这里保举一个器材rdiff-backup不但可以做增量备份,并且会保存每次备份的状态,新备份和上一次备份的不同,可以轻松回到之前的某个版本。独一的要求就是,当地处事器和远端处事器必要安装同一版本的rdiff-backup。其它尚有2款器材 duplicity和`Rsnapshot也可以做相同事变,但要领纷歧样,占用的磁盘空间也纷歧样,详细可查察原文链接中的较量。

详细的rdiff-backup安装和行使如下 (之前写的是英文,内容较量简朴,就不再翻译了):

  • Install rdiff-backup at both local and remote computers
  1. #install for ubuntu, debian 
  2. sudo apt-get install python-dev librsync-dev 
  3. #self compile 
  4. #downlaod rsync-dev from https://sourceforge.net/project/showfiles.php?group_id=56125 
  5. tar xvzf librsync-0.9.7.tar.gz 
  6. export CFLAGS="$CFLAGS -fPIC" 
  7. ./configure --prefix=/home/user/rsync --with-pic 
  8. make 
  9. make install 
  • Install rdiff-backup
  1. #See Reference part for download link 
  2. # http://www.nongnu.org/rdiff-backup/  
  3. python setup.py install --prefix=/home/user/rdiff-backup 
  4. #If you complied rsync-dev yourself, please specify the location of rsync-dev 
  5. python setup.py --librsync-dir=/home/user/rsync install --     prefix=/home/user/rdiff-backup 
  • Add exeutable files and python modules to environmental variables
  1. #Add the following words into .bashrc or .bash_profile or any other config files 
  2. export PATH=${PATH}:/home/user/rdiff-backup/bin 
  3. export PYTHONPATH=${PYTHONPATH}:/home/user/rdiff-backup/lib/python2.x/site-packages 
  4. #pay attention to the x in python2.x of above line which can be 6 or 7 depending on  
  5. #the Python version used. 
  • Test environmental variable when executing commands through ssh
  1. ssh user@host 'echo ${PATH}' #When I run this command in my local computer,  
  2.                              #I found only system environmetal variable is used  
  3.                              #and none of my self-defined environmetal variable is used. 
  4. #Then, I modified the following lines in file 'SetConnections.py' in  
  5. #/home/user/rdiff-backup/lib/python2.x/site-packages/rdiff_backup 
  6. #to set environmental explicitly when login. 
  7. #pay attention to the single quote used inside double quote 
  8. __cmd_schema = "ssh -C %s 'source ~/.bash_profile; rdiff-backup --server'" 
  9. __cmd_schema_no_compress = "ssh %s 'source ~/.bash_profile; rdiff-backup --server'" 
  10. #choose the one contains environmental variable for rdiff-backup from .bash_profile and .bashrc. 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读