Linux备份(linux备份整个系统)

大家好,Linux备份相信很多的网友都不是很明白,包括linux备份整个系统也是一样,不过没有关系,接下来就来为大家分享关于Linux备份和linux备份整个系统的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

linux patch命令

linux系统下patch命令是什么呢?下面是patch命令的具体介绍:

1、patch命令简介:

Patch的主要用途是给代码打补丁,修正已知的错误,或者作为一种调试手段来调试有问题的代码,发现问题和验证修正的结果。

2、patch命令功能:

修补文件。

3、语法:patch[-bceEflnNRstTuvZ][-B备份字首字符串][-d工作目录][-D标示符号][-F监别列数][-g控制数值][-i修补文件][-o输出文件][-p剥离层级][-r拒绝文件][-V备份方式][-Y备份字首字符串][-z备份字尾字符串][--backup-if-mismatch][--binary][--help][--nobackup-if-mismatch][--verbose][原始文件修补文件]或path[-p剥离层级][修补文件]

4、补充说明:patch指令让用户利用设置修补文件的方式,修改,更新原始文件。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行。如果配合修补文件的方式则能一次修补大批文件,这也是Linux系统核心的升级方法之一。

5、参数:

-b或--backup备份每一个原始文件。

-B备份字首字符串或--prefix=备份字首字符串设置文件备份时,附加在文件名称前面的字首字符串,该字符串可以是路径名称。

-c或--context把修补数据解译成关联性的差异。

-d工作目录或--directory=工作目录设置工作目录。

-D标示符号或--ifdef=标示符号用指定的符号把改变的地方标示出来。

-e或--ed把修补数据解译成ed指令可用的叙述文件。

-E或--remove-empty-files若修补过后输出的文件其内容是一片空白,则移除该文件。

-f或--force此参数的效果和指定-t参数类似,但会假设修补数据的版本为新版本。

-F监别列数或--fuzz监别列数设置监别列数的最大值。

-g控制数值或--get=控制数值设置以RSC或SCCS控制修补作业。

-i修补文件或--input=修补文件读取指定的修补问家你。

-l或--ignore-whitespace忽略修补数据与输入数据的跳格,空格字符。

-n或--normal把修补数据解译成一般性的差异。

-N或--forward忽略修补的数据较原始文件的版本更旧,或该版本的修补数据已使用过。

-o输出文件或--output=输出文件设置输出文件的名称,修补过的文件会以该名称存放。

-p剥离层级或--strip=剥离层级设置欲剥离几层路径名称。

-f拒绝文件或--reject-file=拒绝文件设置保存拒绝修补相关信息的文件名称,预设的文件名称为.rej。

-R或--reverse假设修补数据是由新旧文件交换位置而产生。

-s或--quiet或--silent不显示指令执行过程,除非发生错误。

-t或--batch自动略过错误,不询问任何问题。

-T或--set-time此参数的效果和指定-Z参数类似,但以本地时间为主。

-u或--unified把修补数据解译成一致化的差异。

-v或--version显示版本信息。

-V备份方式或--version-control=备份方式用-b参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用-z参数变更,当使用-V参数指定不同备份方式时,也会产生不同字尾的备份字符串。

-Y备份字首字符串或--basename-prefix=--备份字首字符串设置文件备份时,附加在文件基本名称开头的字首字符串。

-z备份字尾字符串或--suffix=备份字尾字符串此参数的效果和指定-B参数类似,差别在于修补作业使用的路径与文件名若为src/linux/fs/super.c,加上backup/字符串后,文件super.c会备份于/src/linux/fs/backup目录里。

-Z或--set-utc把修补过的文件更改,存取时间设为UTC。

--backup-if-mismatch在修补数据不完全吻合,且没有刻意指定要备份文件时,才备份文件。

--binary以二进制模式读写数据,而不通过标准输出设备。

--help在线帮助。

--nobackup-if-mismatch在修补数据不完全吻合,且没有刻意指定要备份文件时,不要备份文件。

--verbose详细显示指令的执行过程。

patch,是打补丁的命令,有很多用法,见帮助#man patch

patch-p0(“p”指的是路径,后面的数字表示去掉路径的第几部分。0,表示不去掉,为全路径)

patch-p1(“p”后面的数字1,表示去掉前第一个路径)fetch

fetch

fetch...

patch-p0...fetch

patch-p patch-tcp_auto_buf-20061212-RELENG_6.diff

也可以把文件中的目录全改成系统已在的目录如/usr/src/sys.....

6、Patch过程分三个大的步骤:

一是用diff工具比较新旧代码,生成patch文件;二是使用patch命令,将patch文件合并到原有代码;三是检查有无无法patch的文件,修改或重新选择是否对其做patch。patch打完了就可以直接编译了。

patch对应到的主要命令有两个,diff和patch。至于检查结果,在linux环境下使用ls命令或者find命令查看有无rej类型的文件就可以了。

现实中常见的做法,是在makefile中加入patch命令,在编译过程中做好代码的patch,然后编译代码。

7、diff命令常用选项:

以下面命令举例:

diff-uNr orginal_proj updated_proj test.patch

其中,-u表示使用unified output format,统一输出格式,比较紧凑而且易读;

-N用来处理新增的文件(此时参数对应的是目录)

-r表示递归处理所有的子目录。

整条命令的意思是,递归比较original和updated两个工程中的所有文件,使用统一的输出格式,添加新增的文件,生成结果输出到 test.patch文件中。

其他常用的选项还有:-p仅针对C程序有效,显示每个不同所对应的函数;-i忽略大小写,对于大小写不敏感的场合使用,比如某些html文件;–exclude表示排除某些文件或者目录,不做比较,适用于如代码包含cvs目录之类的场合。剩下的其他参数可以参考info或者help或者man。

patch文件的格式

上个例子中生成的文件是统一输出格式的,比较紧凑而且易读。举例:

— autoconf-2.7/acgeneral.m4 Wed Nov 22 11:42:00 1995##旧文件

+++ autoconf-2.9/acgeneral.m4 Sat Mar 16 15:53:07 1996##新文件

@@-1,7+1,7@@##第一段不同的地方,旧文件从1行开始,共7行;新文件从1行开始,共7行

dnl Parameterized macros.##无+—符号,是引用的内容

dnl Requires GNU m4.

dnl This file is part of Autoconf.

-dnl Copyright(C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.##删除的内容

+dnl Copyright(C) 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.##替换的内容

dnl

dnl This program is free software; you can redistribute it and/or modify

dnl it under the terms of the GNU General Public License as published by

@@-51,7+51,7@@##第二段不同之处

divert(-1)dnl Throw away output until AC_INIT is called.

changequote([, ])

-define(AC_ACVERSION, 2.7)

+define(AC_ACVERSION, 2.9)

dnl Some old m4′s don’t support m4exit. But they provide

dnl equivalent functionality by core dumping because of the

从刚才的diff命令的例子可以看到,一个patch文件中可能包含整个工程中所有不同文件的比较结果,因此,必须区分具体的文件路径和文件名,以及单一文件中多个不同之处的情况。统一输出格式中,使用—表示旧文件,使用+++表示新文件;文件中的多个不同的文本或代码段,使用@@开始,@@结束的一行来开始;中间的内容是新旧文件的起始行数和本段比较包含的函数,空格做分隔。每段中,无-+符号的是引用的行,有-号的是删除的行,有+号的是新增的行。这样就可以区分开这些情况了。

diff命令还可以生成非统一格式的patch文件,但可读性非常差,所以从编程的角度讲,一定是使用unified output format比较合理。

8、patch命令常用选项:

以下面命令举例:

patch-lNp0 test.patch

其中,-l的意思–ignore-whitespace,忽略空白字符;-N表示–forward,忽略已经打过或者已经取消的补丁(ignore patches that seem to be reversed or already applied);-pnum表示–strip=num,如果没有num参数,表示直接使用文件名,0表示全路径名,其他表示从左开始去除几个slash到,哪一级目录(cut slash count).

整条命令的意思是,使用test.patch文件作为输入,忽略空白符号和已经处理过的补丁,保留patch文件中的包含文件的全路径名,对patch文件涉及到的文件做补丁。

Linux下备份目录的有效命令linux备份目录命令

Linux是目前使用最广泛的操作系统之一,也是众多服务器环境中的优先考虑选择。Linux系统上还有丰富的有效命令,可以帮助使用Linux系统的用户有效地备份其系统上的目录,以保证其文件不丢失。

1、cp命令

cp命令是复制文件或整个目录的有效命令,用于备份Linux下的整个目录。可以在命令行下输入:

`cp-R path/original/directory path/backup/directory`

将会复制整个目录下的子文件及子文件夹。

2、tar命令

tar命令是Linux环境中常用的打包命令,也可以用来备份系统中指定目录下的文件。通过该命令,可以总结归纳出一个tar包,以备份Linux下的所有文件。假如备份/home/calvin中的所有文件,可以在终端下输入:

`tar–cvf home_calvin_2018.tar/home/calvin`

这将备份/home/calvin中的所有文件,并生成以它名称的压缩文件。

3、rsync命令

rsync命令是Linux系统中非常重要的备份命令。它在备份文件的过程中非常快速,通过该命令,可以备份一个目录下的文件及子文件夹,以防止文件的损坏和丢失。只要在终端下输入:

`rsync–avz path/original/directory path/backup/directory`

它将自动备份指定目录下的所有文件及其子文件夹。

以上就是Linux下备份文件的有效备份命令。以上命令的使用方法,都可以在Linux的man手册中查阅到。而用它们备份Linux下的目录,可以更有效率地保存Linux系统上的文件,同时能够保护其安全不受损坏和丢失。

linux dump命令

linux系统dump命令怎么用?让我们一起来了解下。

linux dump命令用于备份文件系统,dump是备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件。

入门测试:

备份文件到磁带

# dump-0-u/dev/tape/home/代码说明及拓展:

-0123456789备份的层级

-b指定区块的大小,单位为KB

-B指定备份卷册的区块数目

-c修改备份磁带预设的密度与容量

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

-f指定备份设备

-h当备份层级等于或大于指定的层级时,将不备份用户标示为”nodump”的文件

-n当备份工作需要管理员介入时,向所有”operator”群组中的使用者发出通

-s备份磁带的长度,单位为英尺

-T指定开始备份的时间与日期

-u备份完毕后,在/etc/dumpdates中记录备份的文件系统,层级,日期与时间等

-w与-W类似,但仅显示需要备份的文件

-W显示需要备份的文件及其最后一次备份的层级,时间与日期

今天的分享就是这些,希望能帮助大家。

阅读剩余
THE END