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显示需要备份的文件及其最后一次备份的层级,时间与日期
今天的分享就是这些,希望能帮助大家。