把linux的文件备份到windows上

来源:互联网 发布:怎样利用淘宝赚钱 编辑:程序博客网 时间:2024/06/05 19:42

主要内容

备份linux主机内容到windows机器上。

备份linux

使用tar备份的主要特点:

  • 保留权限
  • 适合备份整个目录
  • 可以选择不同的压缩方式
  • 如果选择不压缩还能实现增量备份,部份还原,参考man tar

tar的选项很多,根据具体要求选用。

tar命令增量备份linux目录:

tar -g snapshot -cvpzf $tarfile --exclude-from=$exclude_from $sourcedirectory

备份内容

全量与增量

上面的命令中,每次执行时会根据 snapshot 文件的内容进行增量备份。如果 snapshot 不存在,就对所有文件进行备份。

如果目标文件很大,进行全量备份会比较耗时。为了减轻服务器负担,日常进行增量备份,每周或者每月进行一次全量备份。

目标目录

上面的命令中,$sourcedirectory 是我们备份的对象目录,可以是一个目录或者多个目录,也可以指定为一个文件中的具体内容。比如可以设置成 /opt。这个目录下的所有文件会被打包,除了 –exclude-from 选项指定的文件或目录。–exclude-from 可以指定一个目录或者一个文件的路径,也可以指定为一个文件中的具体内容。

清理历史备份文件

上面的命令中,备份文件 $tarfile 保存在linux 本地。对于已经传送到远程服务器(windows)上的文件,需要定期删除。

如果文件保存在远程服务器上,应该由远程服务器自己负责文件的管理,不需要在linux上管理。

备份文件的转移

上面的命令中,假设文件保存在本地,定期上传到 windows 服务器。

需要准备:

  • window上的pscp,putty提供的类似scp的程序,用来在windows上与linux传递文件。
  • linux上开通远程访问接口,为pscp程序提供连接能力。

定期从linux上取得文件,并且上传一个标记文件,通知linux 文件传递完成,linux可以清理已经传递完成的文件。

恢复linux(未运行验证)

tar xvpfz tarfileCtargetdirectory

这个命令会把 tarfiletargetdirectory 目录上,需要特别注意。

对于增量备份的文件,可以反序进行增量恢复。

参考:

Centos使用tar命令做增量备份
centos7系统备份与还原
记录一下putty的pscp的用法

例子代码:

backupall.sh 每天12:30开始备份

#!/bin/bash# /backup/backupall.sh# definedayofweek=`date "+%u"`today=`date "+%Y%m%d"`source=/backup=/backup/exclude_from=/backup/exclude_from# actioncd $backup# clean backuped filesfor ff in `ls done/*.tar.gz.*`do  fff=${ff##*/}  fff=${fff%.*}  echo done file: ${fff}  rm -f $ff  rm -f $fffdone# do backupif [ $dayofweek -eq 6 ]; then  tarfile = "$today"_full.tar.gz  if [ ! -f $tarfile ]; then    rm -rf snapshot    tar -g snapshot -cvpzf $tarfile --exclude-from=$exclude_from $source  fielse  tarfile = "$today"_incr.tar.gz  if [ ! -f $tarfile ]; then    tar -g snapshot -cvpzf $tarfile --exclude-from=$exclude_from $source  fifiecho $tarfile created.

exclude_from

/backup/proc/lost+found/mnt/media/sys

backup_centos_server.bat 每天11:00,14:00开始转移文件

rem linux: backup files at 12:30rem backup: get backup files at 11:00 and 14:00@setlocal@echo offset backupPath=f:\backup\centos7serverset path=e:\term\puttyset PSCP=%path%\pscp.exe -pwset PSCPP=Pscpp$ecret10set remote=backup@10.10.132.199:/backuprem get files%PSCP% %PSCPP% %remote%/*.tar.gz %backupPath%\temprem check filescd %backupPath%for /R temp %%f in (*.tar.gz) do (  echo %%f  if %errorlevel% equ 0 (    echo %%f > %%f.saved    date /t >> %%f.saved    time /t >> %%f.saved    %PSCP% %PSCPP% %%f.saved %remote%/done  ))rem clean filesmove %backupPath%\temp\*.tar.gz %backupPath%del /Q %backupPath%\temp\*.saved

例子代码没有考虑安全因素,注意!

阅读全文
0 0
原创粉丝点击