linux打补丁命令 linux补丁服务器

Red Hat Enterprise Linux 6 怎么打补丁你可以先去下载你需要的补丁包(包里一般有一个补丁文件的,因为如果有不同的版本,就肯定会有补丁的),然后用命令:patch 命令打包就行了 。具体用法如下:
patch -p[num] patchfile
"patchfile"是你下载的补丁文件,在这个补丁文件里一般都有要给那个文件打补丁的路径,
如:/u/howard/src/blurfl/blurfl.c 就是给blurfl.c打补?。?
而 -p[num]的作用就是去掉这个路径的第几个“/“前的内容,
如:patch -p1 patchfile 就是给u/howard/src/blurfl/blurfl.c 打补丁,
patch -p4 patchfile 就是给blurfl/blurfl.c 打补丁 。
这里的路径怎么定就要看你把你的补丁文件放在什么目录了 。
Linux系统有漏洞吗,若有,如何打补丁?更新升级是自动的吗,若否,命令是什么?linux系统当然有漏洞,linux的更新是很快的 。一般几个月半年就有一个小版本更新 , 不只是漏洞还有新功能 。
一般叫系统更新,可以使用系统自带的更新工具 。或是用yum upgrade或apt-get 这些命令,看系统而定 。当然就是全自动了 。
当然可以手动,但要知道自己想更新什么以及下载所有包,很难找 。
一般linux给某个特定软件打补丁用patch命令 。
linux下怎么打补丁请自行下载安装SSH远程软件
通过SSH远程登录你的linux服务器
linux操作系统怎么样打补?。縧inux系统升级软件
在linux下面;centos这类操作系统用yum来升级
而ubuntu这类系统用apt-get来升级
所以今天我们是在centos6.5上演示的
就要用带yum命令
先看看yum命令帮助
linux操作系统怎么样打补?。縧inux系统升级软件
我们用yum update就可以升级软件
yum update会吧你已经安装在系统上的软件都更新掉
linux操作系统怎么样打补?。縧inux系统升级软件
扫描完成之后问你是否更新
输入y回车开始下载
linux操作系统怎么样打补?。縧inux系统升级软件
下载完成之后开始升级软件
linux操作系统怎么样打补?。縧inux系统升级软件
升级完成
linux操作系统怎么样打补?。縧inux系统升级软件
升级完成之后我们用yum upgrade来验证一次是否都升级好了
linux操作系统怎么样打补?。縧inux系统升级软件
也就是说
我们可以用yum update或者yum upgrade都来升级你的centos操作系统
linux查看补丁的方法linux下patch命令使用详解---linux打补丁命令
功能说明:修补文件 。
语法: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 剥离层级][修补文件]
补充说明:patch指令让用户利用设置修补文件的方式 , 修改,更新原始文件 。倘若一次仅修改一个文件,可直接在指令列中下达指令依序执行 。如果配合修补文件的方式则能一次修补大批文件 , 这也是Linux系统核心的升级方法之一 。
参数:
 -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/sys/dev/bge
fetch ...
patch -p0...fetch
patch -ppatch-tcp_auto_buf-20061212-RELENG_6.diff
也可以把文件中的目录全改成系统已在的目录如/usr/src/sys.....注意:
1,确认目录
然后确认目录,如不在默认目录下,就写下要打补丁的当前绝对目录 。如/usr/src/sys/dev/bge/if_bce.c2,P的使用
可以使用不带数字的参数 。
patch 后的软件安装
telnetd服务器的问题及补丁 在当前FreeBSD所有版本中 , 也就是FreeBSD 5.0、FreeBSD 4.3、FreeBSD 4.2、FreeBSD 4.1.1、FreeBSD 4.1、FreeBSD 4.0、FreeBSD 3.x、FreeBSD 2.x的版本,其telnetd守护进程中存在一个致命的缓冲区溢出漏洞,该问题是由于telnetd在处理telnet协议选项的函数中没有进行有效的边界检查 , 当使用某些选项(\'AYT\')时,可能发生缓冲区溢出 。这会导致远程root级别的安全威胁 。
因此 , 如果一定要使用telnet服务的话,必须为服务器打上最新的patch,该patch可以从以下链接获得: (注:通常有两个版本的telnetd服务器 , 有crypto及无crypto的版本,因此需要判断主机使用的是哪种版本的telnetd,这通常可以通过察看src文件来判断 , 比如# ls /usr/src/crypto/telnet/telnetd,如果不存在 , 则说明使用的是无crypto的版本了,在判别清楚之后再分别下载相关补丁文件) crypto版本补?。?
patch方法:
# cd /usr/src/
# patch -p/path/to/patch
# cd /usr/src/secure/libexec/telnetd
# make dependmake all install 无crypto版本补?。?
patch方法:
# cd /usr/src/
# patch -p/path/to/patch
# cd /usr/src/libexec/telnetd
# make dependmake all install 例子来源文件:isp1161-2.6.12.patch(在/root下)
由于patch文件的首行已经指明了路径,所以根据当前所在的目录 , 加不同的参数使用patch命令:
1:如果当前的目录是和linux-2.6.12的同级目录:
[root@ ]#patch -p0 /root/isp1161-2.6.12.patch
2:如果当前的目录为 linux-2.6.12/:
[root@ ]#patch -p1 /root/isp1161-2.6.12.patch
3:如果当前的目录为 linux-2.6.12/drivers/:
[root@ ]#patch -p2 /root/isp1161-2.6.12.pathc
0,1,2,是指略去的patch文件中的前几级目录 。
ln 命令的使用
这是linux中一个非常重要的命令 。它的功能是为某一个文件在另外一个位置建立一个不同的链接,这个命令最常用的参数是-s,具体用法是:ln -s 源文件 目标文件 。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间 。
例如:ln -s /bin/less /usr/local/bin/less
-s 是代号(symbolic)的意思 。
这里有两点要注意:
第一 , ln命令会保持每一处链接文件的同步性 。也就是说 , 不论你改动了哪一处,其它的文件都会发生相同的变化 。
patch附带有一个很好的帮助,其中罗列了很多选项 , 但是99%的时间只要两个选项就能满足我们的需要:
patch -p1[patchfile]
patch -R[patchfile] (used to undo a patch)
-p1选项代表patchfile中文件名左边目录的层数,顶层目录在不同的机器上有所不同 。要使用这个选项,就要把你的patch放在要被打补丁的目录下,然后在这个目录中运行path -p1[patchfile] 。来自Linux内核patch的一个简短的引用可以这样实现:
diff -u --recursive --new-file v2.1.118/linux/mm/swapfile.c linux/mm/swapfile. c--- v2.1.118/linux/mm/swapfile.c Wed Aug 26 11:37:45 1998linux/mm/swapfile.c Wed Aug 26 16:01:57 1998 @@ -489,7489,7 @@
int swap_header_version;
int lock_map_size = PAGE_SIZE;
int nr_good_pages = 0; - char tmp_lock_map = 0;unsigned long tmp_lock_map = 0;
应用来自本段中使用-p1开关拷贝的patch可以有效地减短patch定位的路径;patch会查找当前目录下一个名为/mm的子目录,接着应该会在这儿发现swapfile.c文件,然后等待打补丁 。在这个过程中,以破折号(“-”号,译者注)开始的行会被一个以加号(“ ”号,译者注)开始的行代替 。一个典型的patch会包含对多个文件的更新,每个部分中都由对两个版本的文件运行diff -u命令的输出结果组成 。
patch在操作时把自己的输出结果显示在屏幕上,但是这种输出通常都滚屏太快 , 来不及观看 。原来准备patch的文件名为*.orig,新的patch文件会覆盖这个初始文件名 。
打补丁的问题
使用不同版本的patch问题来源可能不同,所有的版本在网络上都是可用的 。Larry Wall近年来已经不再做很多工作来更新patch了 , 这可能是由于他最后发行的一个版本在大部分情况下都能正常运行 。最近几年以来,一直是GNU项目的 FSF程序员发行新版本的patch 。他们首先修订有问题的patch,但是我最近一直使用没有问题的2.5版本(这是Debian2.0的发行版本号) 。过去 , 我的2.1版本也一直运行的很好 。当前的GNU patch的版本可以从GNU FTP站点上获取,然而大部分人都只使用他们Linux发行版中所提供的版本 。
让我们假定你已经对一个目录下的源程序文件进行了patch修补工作,但是patch并没有清晰地发挥作用 。这可能会偶然发生,在打补丁的过程中会显示错误信息,其中带有行号 , 说明哪一个文件出现了问题 。有时错误是很明显的,例如缺少了分号,??种错误可以不费多大力气就能改正 。另外一种可能是从 patch部分删除了产生问题的部分,但是这样根据所涉及到的文件的不同可能会正常工作,也可能不能正常工作了 。
另外一种常见的错位为:假设你有一个未使用tar打包的内核源程序文件,在/linux/arch/下浏览各个子目录时你会发现各种机器体系结构子目录,例如alpah、sparc等等 。如果你和大多数Linux用户一样,使用的是Intel的处理器(或者是Intel系列),你可以决定删除这些目录,这些目录对于编译你特殊的内核并不需要,只是白白占用了磁盘空间 。一段时间之后发行了一个新的内核patch,此时试图进行patch操作,当它发现不能找到自己打补丁需要的Alpha或者PPC文件,就会停顿下来 。幸运的是patch在这些地方允许用户参与,它会询问Skip this patch?回答y,patch就可以按照正确的路径继续执行 。也许你需要回答这个问题很多次,因此允许自己不需要的目录保留在磁盘上是一种很好的方法 。
linux下的patch命令patch命令用于为特定软件包打补?。?该命令使用diff命令对源文件进行操作 。
格式:patch [选项] [原始文件 [补丁文件]]
常用参数:
-r 是一个递归选项,设置了这个选项 , diff会将两个不同版本源代码目录中的所有对应文件全部都进行一次比较,包括子目录文件 。
-N 选项确保补丁文件将正确地处理已经创建或删除文件的情况 。
-u 选项以统一格式创建补丁文件 , 这种格式比缺省格式更紧凑些 。
-p0 选项从当前目录查找目的文件(夹)(直接使用补丁文件里面指定的路径)
-p1 选项忽略掉第一层目录,从当前目录查找(去掉补丁文件指定路径最左的第1个'/'及前面所有内容) 。
-E选项说明如果发现了空文件,那么就删除它
-R选项说明在补丁文件中的“新”文件和“旧”文件现在要调换过来了(实际上就是给新版本打补?。盟涑衫习姹荆?
示例:
1、单个文件
首先将两个文件的内容显示如下:
$ cat test0
00000000
00000000
00000000
$ cat test1
00000000
11111111
00000000
*生成补?。?
$ diff -uN test0 test1 test1.patch
这样将通过比较,生成test1的补丁文件 。这里选项u表示使用同一格式输出这样产生的输出便于阅读易于修改,N表示把不存在的文件看做empty的.就算文件test0不存在 , 也会生成补丁 。
*把test0通过打补丁变成test1文件:
$ patch -p0 test1.patch
或$patch test1.patch
这样,test0的内容将和test1的内容一样 , 但是文件名称还是test0 。关于patch的选项见后面多文件有说明 。当前目录下可以有test1.如果比较的时候test0是不存在的,那么这时候会生成一个test0文件 。
*把打过补丁的test0还原:
$ patch -RE -p0test1.patch
或$patch -R test1.patch
这样 , test0的内容将还原为原来没有打过补丁的状态 。当前目录下可以有test1.这里的-E选项是要求patch在文件为空的时候删除文件 , 这个选项是不必要的因为patch是根据时间戳来判断一个文件是否存在 。如果比较的时候test0是不存在的,这将会删除test0文件 。
**
2、多个文件的:
首先查看文件结构如下:
1)外层目录列表:
$ ls -p
prj0/prj1/
2)子目录prj0列表:
$ ls -p prj0
prj0nametest0
3)子目录prj1列表:
$ ls -p prj1
prj1nametest1
4)文件prj0/prj0name:
$ cat prj0/prj0name
--------
prj0/prj0name
--------
5)文件prj1/prj1name:
$ cat prj1/prj1name
---------
prj1/prj1name
---------
6)文件prj0/test0:
$ cat prj0/test0
0000000
0000000
0000000
【linux打补丁命令 linux补丁服务器】0000000
0000000
0000000
0000000
7)文件prj1/test1:
$ cat prj1/test1
1111111
1111111
1111111
1111111
1111111
1111111
1111111
*创建补丁:
$ diff -uNr prj0 prj1prj1.patch
这里项u表示使用同一格式输出这样产生的输出便于阅读易于修改,N表示把不存在的文件看做empty的,r表示递归地比较子目录,比较的结果被标准重定向到文件prj1.patch中了 。
运行之后,输出的就是一个补丁,描述了两个文件的不同,这个补丁就是把diff参数的第一个文件打补丁变成第二个文件的补丁文件 。
实际过程依次比较两个目录下的同名文件,如果这里不加-N就会指明prj0name和test0只在prj0中存在,prj1name和test1只在prj1中存在,这就无法比较了,所以这里为了能够比较,加上了-N选项 。
为了便于理解,这里给出prj1.patch文件的内容:
$ cat prj1.patch
diff -uNr prj0/prj0name prj1/prj0name
--- prj0/prj0name2009-08-24 10:44:19.0000000000800
prj1/prj0name1970-01-01 08:00:00.0000000000800
@@ -1,50,0 @@
---------
-
-prj0/prj0name
-
---------
diff -uNr prj0/prj1name prj1/prj1name
--- prj0/prj1name1970-01-01 08:00:00.0000000000800
prj1/prj1name2009-08-24 10:45:05.0000000000800
@@ -0,01,5 @@
---------
prj1/prj1name
---------
diff -uNr prj0/test0 prj1/test0
--- prj0/test02009-08-24 11:21:12.0000000000800
prj1/test01970-01-01 08:00:00.0000000000800
@@ -1,70,0 @@
-0000000
-0000000
-0000000
-0000000
-0000000
-0000000
-0000000
diff -uNr prj0/test1 prj1/test1
--- prj0/test11970-01-01 08:00:00.0000000000800
prj1/test12009-08-24 11:21:33.0000000000800
@@ -0,01,7 @@
1111111
1111111
1111111
1111111
1111111
1111111
1111111
*将prj0中的所有文件打补丁成为prj1中的所有文件:
步骤如下:
1)$ cp prj1.patch ./prj0
2)$ cd prj0
3)$ patch -p1prj1.patch
这里,把补丁文件复制到了prj0下面,然后将该文件夹下面的文件"变成"prj1下的文件了.
$ ls -p
prj1nameprj1.patchtest1
关于patch命令的-p选项接数字n , 意思是去掉补丁文件里指定路径的前n个'/'前缀.
例如补丁文件中指定路径是/u/howard/src/blurfl/blurfl.c,那么p0选项处理之后的路径还是原来路径不变,而p1选项处理之后的路径是u/howard/src/blurfl/blurfl.c,同理p4处理之后的路径是:blurfl/blurfl.c.
注意:如果在外层目录运行这个命令,那么会在外层目录创建两个prj1name和test1文件 。
*将打好补丁的prj0中的所有文件还原成为原来打补丁之前的文件:
$ patch -R -p1prj1.patch
运行之后文件变成原来的文件了,如下:
$ ls -p
prj0nameprj1.patchtest0
*将prj1中的所有文件反向打补丁成为prj0中的所有文件:
$ patch -R -p1prj1.patch
运行之后prj1中的文件变成prj0的文件了 , 如下:
$ ls -p
prj0nameprj1.patchtest0
*将prj1中反打补丁后的文件还原成原来的prj1中的文件:
$ patch -p1prj1.patch
运行之后,prj1中的文件被还原了 , 如下:
$ ls -p
prj1nameprj1.patchtest1
*在外层目录把prj0的内容打补丁成prj1的内容:
$ls -p
prj0/ prj1.patch
$patch -p0 prj1.patch
这样prj0中的内容变成了prj1中的内容,但是prj0的目录名仍旧是prj0,如下:
$ls -p prj0
prj1nametest1
注意:当前文件夹下面不能prj1目录 , 否则会出现一些警告提示 。
*在外层目录把prj0的内容反打补丁还原成原来prj0的内容:
$ patch -R -p0 prj1.patch
这样原来的文件如下:
$ ls -p prj0
prj0nametest0
**
求助大虾们,linux怎么给mysql漏洞打补丁找个MySQL软件
然后由于手动安装MYSQLlinux打补丁命令,需要在系统中建立名为mysqllinux打补丁命令的用户和组linux打补丁命令 , 并制定musql用户的宿主目录是"/usr/local/mysql/data"
# groupadd -g 200 mysql
# useradd -u 200 -g mysql -d /usr/local/mysql/data -M mysql
然后将软件包释放到"/usr/local/“目录中,为linux打补丁命令了方便管理,用ln命令建立该目录的符号链接目录为mysql 。
# tar zxvf MySQL-server-5.1.53-1.glibc23.i386.tar.gz -C /usr/local/
#cd /usr/local/
# ln -s MySQL-server-5.1.53-1.glibc23.i386/ mysql
然后在"var/lib"建立名为mysql的子目录,并设置目录和MYSQL服务器安装目录的属主和属组
# mkdir /var/lib/mysql
# chown -R mysql :mysql /var/lib/mysql
# chown -R root :mysql /usr/local/MySQL-server-5.1.53*
# chown -R mysql :mysql /usr/local/mysql/data/
然后进入到MySQL的服务器程序的目录,复制mysql的配置文件my.cnf到"/etc"目录中,并执行mysql.install_db命令初始化MySQL服务器中的数据库 。
# cd /usr/local/mysql
#cp support-files/my-medium.cnf /etc/my.cnf
如果mysql的RPM包在系统中已经安装,"/etc"目录会存在my.cnf文件,将提示覆盖原有的my.cnf文件
cp:overweite '/etc/my.cnf'? y
# ./scripts/mysql_install_db
然后设置"/var/lib/mysql/"和"/usr/local/mysql/data/"两个目录中的所有文件属于mysql用户和用户组,以保证访问权限 。
# chown -R mysql :mysql /var/lib/mysql/
#chown -R mysql :mysql /usr/local/mysql/data/
然后使用safe_mysqld 命令启动MYSQL服务器运行,并制定MYSQL服务程序以系统用户mysql的身份运行
# /usr/local/mysql/bin/safe_mysqld --user=mysql
由于数据库管理用户root的初始密码为空所以要设置
# /usr/local/mysql/bin/mysqladmin -u root password ‘密码'
最后指定登录数据库的用户名
# /usr/local/mysql/bin/mysql -u root -p (-p是设置提示用户输入口令) 。
不知道对linux打补丁命令你有没有帮助 有空看看吧
linux打补丁命令的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于linux补丁服务器、linux打补丁命令的信息别忘了在本站进行查找喔 。

    推荐阅读