2019-08-15 16:32:27 qq_43444478 阅读数 21
  • linux运维命令篇

    本次课程基于centos7讲解同时也适用于rhel7系统,主要讲解了Linux运维工程师在日常运维中常用的命令,例如 Linux用户管理、Linux磁盘管理以及文件系统、Linux文件压缩于备份等常用相关命令,通过本次课程的学习大家对Linux运维常用命令有一个全新的认识,可以有效提高运维的效率。

    107 人正在学习 去看看 朱丹阳

​如何更好的学习云计算?Linux文件怎么备份恢复?对于云计算人才来说,及时的备份文档资料非常重要,若不备份或误删文档,后期查找恢复起来将会是一个大工程。不过随着开源软件的不断升级更新,文件备份变得很容易,下面就给大家讲解一下Linux文件备份及恢复文档常用的命令。

 

如何更好的学习云计算 Linux文件怎么备份恢复

 

 

在Linux系统中,文件备份及恢复常用的命令包括cp、dump、estore。

cp

文件的备份,语法格式:

cp[参数][源文件或目录][目标目录] 或cp[选项][源文件][目标文件]

参数说明:

-a 该参数通常在复制目录时使用。保留链接、文件属性并递归的复制目录,其作用等于-d、-p和-r参数的组合。

-b 在复制文件的时候,若目标文件存在,在删除,覆盖目标文件前应做备份,并在已经存在的文件末尾加备份字符串,默认~。

-d 复制时候保留链接。

- 删除已经存在的目标文件而不提醒。

-i 和f参数相反,在覆盖目标文件之前,将给出提示并要求用户确认,输入y 则会覆盖,是安全的交互模式。

-p 利用此参数cp命令除复制源文件的内容外,还保持着源文件的访问权限、属主、时间戳不变。

-r 若给出的源文件时一个目录文件,此时从命令将递归复制该目录下所有的子目录和文件。

-l 对文件建立硬链接,而非复制。

-L 跟踪符号链接。

-p 不跟踪符号链接。

dump

包括具体文件的备份和整个文件系统的备份,dump命令倾向于考虑备份整个文件系统,文件的备份策略包括完全备份、增量备份和更新备份。语法格式:Dump[参数][待备份的目录和文件系统]或dump[-wW]

参数说明

-0123456789 备份的级别,0表示全部备份,其他表示增量备份,对于上次较低级别,只备份文件系统中修改过或新文件 默9。

-d 设置磁带的密度,单位为bpi。

-j 压缩写入,指定压缩级别比如2。

estore

恢复文件或文件系统,是Linux提供专门为dump恢复工具。语法格式:

Restore[主参数][可选参数][文件名或者文件系统]

参数说明

-i 以交互模式处理dump中的文件,读取dump文件的时候弹出类似shell接口,允许用户执行相应的命令来控制是否提取文件,并执行命令。

-f 从指定的文件中读取备份数据,进行还原操作,这里的备份文件可以是特殊的设备文件,若文件名是以file:host或者user@host.file的形式给出,表示从远程主机上读取备份文件的数据。

-b<区块大小> 每个dump记录区块的大小,单位是字节,若不指定介质区块的大小,restore自动检测介质区块的大小。

-R 针对特殊的磁带指明从何处恢复,对于中断的restore命令十分有用。

需要注意的是当备份的文件、目录数量较多时,备份出来的文件数量及其所占用的磁盘空间可能会对服务器产生不小的压力。因此,有必要对需要备份的数据进行归档和压缩,这是你需要借助压缩命令gzip、bzip2,以及归档命令工具为tar。如果你想更好的学习云计算或者Linux常用命令,可以选择专业的学习方式。

2015-05-26 11:18:32 fungfong 阅读数 495
  • linux运维命令篇

    本次课程基于centos7讲解同时也适用于rhel7系统,主要讲解了Linux运维工程师在日常运维中常用的命令,例如 Linux用户管理、Linux磁盘管理以及文件系统、Linux文件压缩于备份等常用相关命令,通过本次课程的学习大家对Linux运维常用命令有一个全新的认识,可以有效提高运维的效率。

    107 人正在学习 去看看 朱丹阳

  

  一个应用中有很多的重要数据,为了在数据灾难发生后我们能够及时、迅速、准确的恢复我们的应用到一个比较合适的位置,我们必须定期的对我们的数据资料进行备份,今天给大家分享的就是Linux文件备份的方法。

  1、本机数据手工备份

  Linux上有功能强大的tar命令,tar最初是为了制作磁带备份而设计的,它的作用是把文件和目录备份到磁带中,然后从磁带中提取或恢复文件。现在我们可以使用tar来备份数据到任何存储介质上。

  tar命令备份数据的格式如下:

  tar cvf backup.tar /home/www 这个命令的含义就是将 /home/www/ 打包为 backup.tar 文件,如果我们需要压缩,则需要加上 z 命令。

  使用这个命令,我们可以手工备份服务器上的数据,但是要做到定时自动备份,我们还需要借助下一个技巧。

  2、本机数据自动备份

  要实现自动备份,我们首先需要将 tar 命令写在脚本里。比如下面这样一个脚本:

  #!/bin/sh

  tar zcvf test.tar /home/www/

  保存为 test.sh 并添加可执行权限,执行后,发现提示:tar: Removing leading `/' from member names

  这个问题是由于脚本执行的时候默认是在用户目录下的。这样就选成了问题的存在,解决办法就是在执行 tar 之前 cd 切换到要打包的目录就可以了。

  有了可以执行命令的脚本,还要能够让他定时执行,这个就要借助于计划任务了。

  Linux 为我们提供了 cron 这个强大的工具,我们可以用它来实现几乎任何类型的定时触发。每个用户都有自己的 cron 配置文件,一般来说,我们都是通过 root 用户来运行 cron 任务,以保证我们能够获得足够的权限。

  如果我们希望每天凌晨四点定时运行我们之前写好的脚本,我们可以通过 crontab -e 来编辑配置文件,并加入:

  0 4 * * * /home/test.sh

  这样,每天凌晨4点系统会自动运行这个备份脚本。

  3.借助数据备份软件-多备份

  关于多备份:

  多备份企业文件自动备份软件是一款电脑和服务器文件自动定时备份和恢复的数据保护软件,它能实现混合备份,既把数据备份在本地,也能将数据备份到云端;兼容windows、Linux等主流平台。对比传统文件备份软件,多备份提供多种灵活的部署和使用方式,企业既可以在单台设备上使用多备份客户端保护数据;也可以在web控制台集中管理名下的所有设备数据,最多可同时管理数万台设备的数据保护工作。

  那么就来讲下如何使用客户端进行备份

  1.下载Linux版安装包:登录到主机上(root权限登录),输入命令:wget http://www.dbfen.com/tools/dbfen_install.sh回车


2.输入ls回车,有一个dbfen_install.sh的文件显示

  3.输入bash dbfen_install.sh回车,提示安装成功,并且有相关提示


  4.启动服务,输入命令:/usr/local/services/dbfen/startdbfen回车,OK,启动成功了。重启服务命令:/usr/local/services/dbfen/startdbfen restart


  如果你是本机访问,直接打开浏览器输入127.0.0.1:40000/view/index.html即可。

  如果是其它电脑访问,输入http://安装Linux客户端机器的IP:40000/view/index.html。OK,现在一起来看看如何进行备份


  (1)、打开MySQL数据库备份,填写数据库相关参数。

  IP:默认127.0.0.1;域名:localhost

  用户名:登录数据库的账号名

  密码:登录数据库的密码

  端口号:默认3306,或者找到mysql.ext并打开,输入密码后按回车键,在mysql>后输入“show global variables like ‘port’;”回车


  (2)、填写完参数后,点击“下一步”,勾选需要备份的数据库,点击“完成”,任务就创建完成了(文件开始自动备份了)


  (3)、点击“操作”下的“设置频率”,设置任务备份频率;”编辑参数”设置连接数库的用户名、密码、端口号; “备份内容”重新选择需要备份的数据库。


  提示:如果需要再创建一个数据库备份任务,点击“操作”下的“备份内容”,点击“添加数据库”,然后与创建第一个数据库任务时的步骤一样。

  (如果提示任务数不够,请到官网上兑换任务数;相同的数据库只能创建一个)


2017-12-05 10:51:27 tiaya 阅读数 2941
  • linux运维命令篇

    本次课程基于centos7讲解同时也适用于rhel7系统,主要讲解了Linux运维工程师在日常运维中常用的命令,例如 Linux用户管理、Linux磁盘管理以及文件系统、Linux文件压缩于备份等常用相关命令,通过本次课程的学习大家对Linux运维常用命令有一个全新的认识,可以有效提高运维的效率。

    107 人正在学习 去看看 朱丹阳

主要内容

备份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

# define
dayofweek=`date "+%u"`
today=`date "+%Y%m%d"`
source=/
backup=/backup/
exclude_from=/backup/exclude_from

# action
cd $backup

# clean backuped files
for ff in `ls done/*.tar.gz.*`
do
  fff=${ff##*/}
  fff=${fff%.*}
  echo done file: ${fff}
  rm -f $ff
  rm -f $fff
done

# do backup
if [ $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
  fi
else
  tarfile = "$today"_incr.tar.gz
  if [ ! -f $tarfile ]; then
    tar -g snapshot -cvpzf $tarfile --exclude-from=$exclude_from $source
  fi
fi

echo $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:30
rem backup: get backup files at 11:00 and 14:00

@setlocal
@echo off
set backupPath=f:\backup\centos7server
set path=e:\term\putty
set PSCP=%path%\pscp.exe -pw
set PSCPP=Pscpp$ecret10
set remote=backup@10.10.132.199:/backup

rem get files
%PSCP% %PSCPP% %remote%/*.tar.gz %backupPath%\temp

rem check files
cd %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 files
move %backupPath%\temp\*.tar.gz %backupPath%
del /Q %backupPath%\temp\*.saved

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

2017-02-05 14:11:16 qlf0302 阅读数 1021
  • linux运维命令篇

    本次课程基于centos7讲解同时也适用于rhel7系统,主要讲解了Linux运维工程师在日常运维中常用的命令,例如 Linux用户管理、Linux磁盘管理以及文件系统、Linux文件压缩于备份等常用相关命令,通过本次课程的学习大家对Linux运维常用命令有一个全新的认识,可以有效提高运维的效率。

    107 人正在学习 去看看 朱丹阳

在Linux上可以用tar命令将某个文件系统上的文件或者目录备份到一个归档文件中,在需要恢复时从此归档
文件进行恢复。

例如:在某个用户系统中/home使用单独的文件系统,需要将/home文件系统备份,可以运行下面的
命令:
# mkdir -p /archives
# tar zcvf /archives/home_backup-date +%Y%m%d.tar.gz /home 

     在/home文件系统被破坏需要恢复时, 运行下面的命令进行恢复:
     ""重新创建文件系统, 这里假设我们要用/dev/sdc1所在的分区作/home 
     # mkfs.reiserfs /dev/sdc1
     ""加载新的/home文件系统
     # mount /dev/sdc1 /home
     ""从归档文件中恢复原来的/home文件系统
     # tar zxf /archives/home_backup-20041130.tar.gz -C /  
2017-11-13 23:04:20 qq_32759985 阅读数 15056
  • linux运维命令篇

    本次课程基于centos7讲解同时也适用于rhel7系统,主要讲解了Linux运维工程师在日常运维中常用的命令,例如 Linux用户管理、Linux磁盘管理以及文件系统、Linux文件压缩于备份等常用相关命令,通过本次课程的学习大家对Linux运维常用命令有一个全新的认识,可以有效提高运维的效率。

    107 人正在学习 去看看 朱丹阳

由于项目中需要导出数据库数据,就稍微研究了一下备份文件的脚本。
命令很简单,用到的都是一些基本的。看一下,试试就没问题了。
代码如下:
backup.sh内容如下

#!/bin/bash

#date  显示时间,我们可以用时间的不同做为备份文件的名字,这样以前的备份就不会被覆盖

datename=$(date +%Y%m%d)            #定义时间变量名和显示时间格式

bcfile=myfile/$datename;
sql=sql.del

# -x 参数判断 $folder 是否存在并且是否具有可执行权限
if [ ! -x "$bcfile" ]; then
   echo "该用户对$bcfile文件夹没有权限"
else 
    echo "该用户对文件夹$bcfile有权限"
fi

#-d判断文件夹是否存在
if [ ! -d "$bcfile" ]; then  
    echo "$bcfile 文件夹不存在,进行创建文件"
    mkdir -p "$bcfile"   #创建与时间相对应的文件
else 
    echo "$bcfile文件存在"
fi 

# -f 参数判断 文件是否存在
if [ ! -f "$sql" ]; then
    echo  "$sql文件不存在,进行创建"
    touch "$sql"
else 
    echo  "$sql文件存在"
fi

#-a:此参数的效果和同时指定"-dpR"参数相同; 
#-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
#-f:强行复制文件或目录,不论目标文件或目录是否已存在;
#-i:覆盖既有文件之前先询问用户;
#-l:对源文件建立硬连接,而非复制文件;
#-p:保留源文件或目录的属性; 
#-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
#-s:对源文件建立符号连接,而非复制文件; 
#-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件; 
#-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; -b:覆盖已存在的文件目标前将目标文件备份; 
#-v:详细显示命令执行的操作。



cp -a -R $sql $bcfile  #把要备份的文件复制到上面创建的文件夹内

注意:linux脚本是放在linhux上运行的,由于操作系统的不同,会导致一写字符的不同。
大家注意使用的时候要将“\r”给替换成“”,并且注意“Tab”分隔符。

linux远程备份文件

阅读数 304

linux远程备份文件

博文 来自: liuxueping1987

Linux下文件的备份

阅读数 18184

没有更多推荐了,返回首页