Linux的chkconfig 命令介绍

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

使用语法

chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]

chkconfig在没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定了on,off或者reset,那么chkconfig 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。

参数用法

   --add  增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
   --del  删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
   --level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。
      等级0表示:表示关机
      等级1表示:单用户模式
      等级2表示:无网络连接的多用户命令行模式
      等级3表示:有网络连接的多用户命令行模式
      等级4表示:不可用
      等级5表示:带图形界面的多用户模式
      等级6表示:重新启动

需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

    chkconfig --list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
    chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
    chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
    chkconfig [--level levels] name:设置某一服务在指定的运行级是被启动,停止还是重置。

运行级文件

每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 – 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。
例如,random.init包含三行:

# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.

使用范例

chkconfig --list        #列出所有的系统服务
chkconfig --add httpd        #增加httpd服务
chkconfig --del httpd        #删除httpd服务
chkconfig --level httpd 2345 on        #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态
chkconfig --list        #列出系统所有的服务启动情况
chkconfig --list mysqld        #列出mysqld服务设置情况
chkconfig --level 35 mysqld on        #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfig mysqld on        #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级

如何增加一个服务

  1. 服务脚本必须存放在/etc/ini.d/目录下;
  2. chkconfig –add servicename,在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;
  3. chkconfig –level 35 mysqld on,修改服务的默认启动等级。

相关参考

http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html
http://www.linuxde.net/2011/11/2378.html
http://blog.csdn.net/john_f_lau/article/details/24846355

ubuntu开机自动开启小键盘

使用ubutnu是有一点比较烦,那就是每次开机后小键盘不会自动开启非要手动开启小键盘,但由于我的开机登陆密码有数字,所以每当开机登陆的时候,都要先打开NUMLOCK键,然后再输入密码,很不方便,找到以下方法,便可以开机自动开启小键盘了!

首先,需要安装一个小软件,在终端中执行以下:


sudo apt-get install numlockx

如果你的ubuntu版本小雨11.10请使用以下解决方法。

sudo vi /etc/gdm/Init/Default

#把下面的内容添加到最后那行的前面,(“exit 0“的前面)

if [ -x /usr/bin/numlockx ]; then
numlockx on
fi

重启或者注销便可!启动时,小键盘灯自动打开,直接输入了,此方法只对GNOME(GDM)有效!

从ubuntu11.10开始,gdm被换成了lightdm,所以用之前的办法是不能自动开启小键盘的,要自动开启小键盘要改成以下方法。


sudo gedit /etc/lightdm/lightdm.conf
#最后一行加入:greeter-setup-script=/usr/bin/numlockx on

本文转自《让ubuntu开机自启动小键盘

ubuntu下安装php开发环境笔记

本文主要介绍如何在ubuntu环境下安装一些常用的应用软件和开发软件,算给自己做个安装笔记吧。
基础环境介绍

OS:   ubuntu 12.04 64bit
CPU:  Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz
Mem:  4G
Disk: 50G

本文所述安装软件清单

好了,上面阐述了本次要安装的软件,下面开始进入正题。

安装搜狗拼音输入法

一般的我们对于新的系统首要的应该是输入法了,没错,虽然默认的ubuntu在安装的过程中有附加的拼音输入法,但是我个人比较偏爱搜狗拼音输入法,这不第一个安装是就是输入法了。
由于搜狗输入法是基于fcitx框架开发的,所以我们在安装搜狗拼音输入法,如有必要请先卸载ibus。

sudo apt-get remove ibus

然后,添加fcitx源,更新资源

sudo add-apt-repository ppa:fcitx-team/nightly

sudo apt-get update

再进行安装搜狗拼音输入法。

sudo apt-get install fcitx fcitx-config-gtk fcitx-module-cloudpinyin fcitx-sogoupinyin im-switch

sudo im-switch -s fcitx -z default

#其实还有很多拼音输入法可选的 fcitx-sunpinyin fcitx-googlepinyin 
#fcitx-module-cloudpinyin 模块是对所有的拼音引擎添加了云支持,在第二个候选词的位置提供云结果

安装完成后,注销当前用户(推荐)或重启一下即可看到搜狗拼音输入法了。

安装谷歌浏览器(chrome)

一般来说ubuntu下面自带了Firefox浏览器的,不过我是一名忠实的chrome迷,我的tag和sync都在chrome上呢,当然还有我习惯的goagent(下步再说)。
首先我们当然要去下载chrome的最新版了,我的是ubuntu64bit的系统当然选择64bit.deb了,选好了点击“接受并安装”,然后就等待下载吧。

cd ~/下载
#64bit 
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

#32bit
wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb

下载完成之后,我们开始安装chrome。

#为了避免提示软件依赖错误,需要libnss3-ld,我们在安装chrome前先运行
sudo apt-get -f install

cd ~/下载

sudo dpkg -i google-chrome-stable_current_amd64.deb

到这里你可以点击Dash主页,搜索chrome看看是否可以用了?

安装goagent

goagent是一款非常好用的FQ软件,在CN这个软件可以给我们看到外面世界,而且free,而且跨平台无论你是windows/linux/ios/osx/android都令你尽情畅游互联网,享受无国界的上网体验。

当然我这里只是提供gogent在ubuntu环境下的安装介绍,安装goagent的前期工作我们是要做足的,因为goagent必须依赖于python2+

sudo apt-get install python-dev python-greenlet python-gevent python-vte python-openssl python-crypto python-appindicator

#安装gevent(提升多线程性能,强烈建议安装)
sudo apt-get install python-dev python-pip && sudo pip install gevent --upgrade

#安装是否成功,你现在可以试试python的命令,如果显示出版本号,那么至此应该可以算是python装完了
python --version

前期工作做完了,现在下载goagent的最新版,目前googlecode上最新是3.1.5。

cd ~/下载
wget https://nodeload.github.com/goagent/goagent/legacy.zip/3.0 -O goagent.zip

#解压
unzip goagent.zip
#建议将goagent放在/opt目录,非强制,完全自定义
sudo mv goagent-goagent-* /opt/goagent

cd /opt/goagent/server
#上传appid
python uploader.py

#根据提示输入你自己创建的appid(若要同时上传多appid在appid之间用|隔开)和你的Gmail帐号和密码(如果开启了两步验证,密码为16位的应用程序专用密码)
#上传完成后不要忘记修改local/proxy.ini文件中的appid
#如果出现无法执行的情况,请检查goagent目录权限

goagent的服务端程序配置完成了,现在再配置它的客户端。

cd /opt/goagent/local

#运行goagent 在命令行下
python proxy.py

#运行goagent以托盘形式(可选)
python /opt/goagent/local/goagent-gtk.py

#以开启自启动(可选)
sudo vi /etc/rc.local

#在exit 0前插入
/opt/goagent/local

退出goagent

如果是直接终端使用”python proxy.py”运行,在终端按”Ctrl+C”组合键可终止运行;如果使用gtk托盘,在托盘图标上右键菜单有退出选项。直接关闭终端窗口也会退出。如果以后台进程运行,先用”ps aux | grep proxy.py”找到goagent的PID,然后直接kill对应的PID 。

ps aux|grep proxy.py|grep -v "grep"|awk '{print $2}'|xargs kill

关于goagent证书导入问题,如果你sudo提权后是可以自动导入证书,但是我的chrome貌似不行,只能使用手工导入CA.crt证书。

1、打开chrome
2、设置
3、显示高级设计
4、HTTPS/SSL(管理证书)
5、证书管理器
6、授权中心
7、点击“导入”,选择到/opt/goagent/local/CA.crt。出现三个可选框全部勾选保存,重启chrome即可。
8、测试访问下www.facebook.com

PS:一个goagent小技巧,利用goagent作为代理终端下载一些访问比较慢的update包,你应该有过这样的体会,一些国外的源在国内访问时常被终端,我们可以利用goagent来代理我们在终端所访问的资源。

#代理http
export http_proxy=http://127.0.0.1:8087

#代理https
export https_proxy=http://127.0.0.1:8087

安装xampp

前期我们也算完成一些应用软件吧,既然作为桌面系统来开发php,xampp是不二的选择,好处嘛就是下载一个就等于下载了apache+php+mysql+ftp了,是不是很爽?当然在生产环境下我们还是讲究的是专一性,用到的才安装。但是我这是桌面系统pc,不是服务器,所以xampp是我首选的目标了。
废话不说太多,先去下载xampp这个是必须的。

#如果你用了goagent代理了,呵呵你会发现这个的下载速度很快
wget http://superb-dca2.dl.sourceforge.net/project/xampp/XAMPP%20Linux/1.8.3/xampp-linux-x64-1.8.3-3-installer.run

sudo chmod 755 xampp-linux-*-installer.run

#开始安装 你会发现弹出一个GUI界面来给你安装
sudo ./xampp-linux-*-installer.run

#安装完成后xampp默认安装在/opt/lamp中 执行下面这条命令启动xampp
sudo /opt/lampp/lampp start

#如果你启动成功了,你用浏览器访问下http://localhost是否看到xampp欢迎界面

#停止xampp
sudo /opt/lampp/lampp stop

#更多的命令你可以试试
/opt/lampp/lampp -h

如果你还是更多的疑问你可以参考xampp的FAQ

安装ZendStudio

话说vim是最牛X的编辑器,但是对于我这种一直偏爱zendstudio作为我的IDE怎么舍得把它扔掉?
vim是后话,但是本次还是有很多童鞋喜欢zendstudio,所以还是不能跑题继续开始我的zendstudio安装说明,第一步当然是去下载zendstudio了。

cd ~/下载
#64bit zendstudio 10.6.0
wget http://downloads.zend.com/studio-eclipse/10.6.0/ZendStudio-10.6.0-linux.gtk.x86_64.tar.gz

#32bit zendstudio 10.6.0 
wget http://downloads.zend.com/studio-eclipse/10.6.0/ZendStudio-10.6.0-linux.gtk.x86.tar.gz

我下载的64bit的zendstudio,然后就是解压过程,将zendstudio移动到/opt/zendstudio文件夹下,由于zendstudio是基于eclipse开发的,当然需要jre的支持了,去java.com中下载java吧。下载完成后,在/opt/zendstudio目录中新建一个jre目录,将下载好的java压缩包中的文件复制到jre中即可。

cd /opt/zendstudio

./ZendStudio

至此,zendstudio已成功安装,你可以设置快捷方式到桌面。关于破解zendstudio请参见《首发Zend Studio 10.6正式版注册破解》。

安装WineQQ

WineQQ?其实就是在wine的支撑下能在linux下面运行windows的QQ版本,没有办法在中国im界绝对是QQ垄断了,在linux上面之前有官方提供的版本,但是目前官方似乎已经停止了linux-qq的维护了(当然,webQQ也应该能满足大多数的需求了),为了能在linux上面运行QQ,首先我们得要安装支撑软件wine。

sudo add-apt-repository ppa:ubuntu-wine/ppa

sudo apt-get update

sudo apt-get install wine1.7
#执行安装wine命令需要几分钟的时间,请耐心等待……
#中间会出现一个让你点击确定按钮的界面,请留意

安装完成后请在你的dash搜索wine看看出现酒杯没有?
下面我们开始安装wineQQ,longene论坛提供的qq2013sp6它们说挺好的,但是我测试了使用视频不稳定直接崩溃,其他的貌似还没有发现什么问题。

cd ~/下载
wget http://www.longene.org/download/WineQQ2013-20131120-Longene.deb

#如果之前安装过旧版本需要先卸载(通过dpkg -l | grep qq查看)。
sudo dpkg -i WineQQ2013-20131120-Longene.deb

#如果你的ubuntu和我一样是64bit操作系统的话,那么你还需要运行
sudo apt-get install ia32-libs

至此wineQQ安装完成。

linux安装redis及其应用

redis是什么?自己谷歌了,最近业务上有些需求,centos上面需要跑一个redis-server。这不上去redis.io,下文附上官方贴出来的command

 wget http://download.redis.io/releases/redis-2.8.7.tar.gz

 tar xzf redis-2.8.7.tar.gz

 cd redis-2.8.7

 make && make install

执行完成之后redis被install在/usr/local/bin下面了,在redis解压包中我们还发现一个utils文件包,来执行下面install_server.sh

 cd redis-2.8.7

 utils/install_server.sh

如果你没有什么特殊要求的话,直接就一直按回车吧。
这样我们会出现/etc/init.d/redis_6379这个service脚本了,你可以是不是可以尝试下

 service redis_6379 start

当然如果把它加入到自启动就更好了

 echo "/usr/local/bin/redis-server" >> /etc/rc.d/rc.local

我们再来看看使用php来使用下redis了,不过前提你还需要安装一个php的扩展,关于php扩展可以在redis官网上面有推荐,但我看了很多地方目前流行用php-redis的扩展是phpredis。当然redis支持的客户端是相当的多了,具体的你可以参考redis客户端列表

 cd /usr/local/src

 wget https://github.com/nicolasff/phpredis/archive/master.zip

 unzip master.zip

 cd phpredis-master

 /usr/local/php/bin/phpize

 ./configure --with-php-config=/usr/local/php/bin/php-config

 make && make install

最后别忘了在php.ini文件中加上一句

extension=redis.so

最后重启下php-fpm,再去看看phpinfo中是否有redis。剩下的api就自己到phpredis使用手册查看了。

linux+windows安装php_imagick扩展

imagick是什么,请点这里,性能确实是盖过了GD,同时也提供了很丰富的api。

安装php_imagick扩展,它只是一个扩展,相当于一个api,更多还是还需要依赖ImageMagick主程序的支撑,所以我们首先还是得要安装ImageMagick程序。

下载的方法和过程,在这里写的很完整,按照这个步骤进行一般都很顺利安装完成。

当你在上述步骤顺利完成后,接下来我们要安装的就是php_imagick扩展了,你先到这里下载它。好我贴上我的过程shell

 

wget http://pecl.php.net/get/imagick-3.2.0b2.tgz
tar zxf imagick-3.2.0b2.tgz
cd imagick-3.2.0b2
#使用phpize扩展安装
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/lib
make && make install

编程完成完成后,自动会在ext目录中生成imagick.so

你需要做的就是在php.ini文件中添加一行

 

extension=imagick.so

 

重启下php-fpm,再打开看看phpinfo是否有imagick扩展。

q8

 

 

很多人抱怨在Windows下面安装扩展是一件非常痛苦的事,其实不然,Windows下面安装也是非常简单的(当然我还是不喜欢Windows),首先还是和linux一样,先安装ImageMagick主程序,你可以到这里下载你所需要的版本。我下载的是ImageMagick-6.8.7-5-Q16-x86-dll.exe,我个人认为这个主程序版本应该是最新最好,而且它并不是直接影响php_imagick的安装。

如果要说php扩展在Windows下面安装,那么首先你要检查你的php版本问题,有这些你需要注意的,我在图中已经框出来了,根据这些特性去找扩展相信对你有很大的帮助。

phpinfo

第一就是php版本是多少?第二是这个php是通过什么编译的?64还是32位版本的?,第三是否是线程安全版本?

根据上面三个问题你去找扩展相信就简单了许多了,而且很多流行的扩展并不需要你自己来编译,网上面早就有人把它们编译好了。

我就根据我上述的三个问题得到的结果是php5.4 MSVC9 (Visual C++ 2008)  x86的,我不得不告诉你怎么用google来搜索了,你输入“php_imagick.dll   vc9  32 download”。啊?你是在用百度?作为程序员你在用百度就是一种自暴自弃的行为。百度给的搜索结果就上面说的不对版,让你很痛苦,让你尝试N次都有种想自杀的冲动。

怎么搜索的问题其实自己的问题,学会搜索也是一种技巧。我这个版本的下载地址在这里,不要忘记在php.ini上添加extension=php_imagick.dll。

 

tar命令使用及tar实现全备份和增量备份[转]

本文转载这里,首先弄清楚何为全备、增量备份、差异备份。简而言之,可以这样理解:

  • 全备:对所有的文件做一次备份。
  • 增量备份:本次和上一次的的差异。
  • 差异备份:在全备的基础上做备份。

一、tar命令

#创建测试文件夹和文件  
[root@serv01 web]# cd /data  
[root@serv01 data]# ls  
[root@serv01 data]# mkdir /work  
[root@serv01 data]# mkdir /work/upload  
[root@serv01 data]# cd /work/upload/  
[root@serv01 upload]# touchaa0{1,2,3,4,5}.txt  
[root@serv01 upload]# ls  
aa01.txt aa02.txt  aa03.txt  aa04.txt aa05.txt  

#创建压缩包  
[root@serv01 data]# tar -cvf upload01.tar/work/upload/  
tar: Removing leading `/' from member names  
/work/upload/  
/work/upload/aa03.txt  
/work/upload/aa01.txt  
/work/upload/aa04.txt  
/work/upload/aa05.txt  
/work/upload/aa02.txt  
#查看压缩包里面包含的文件  
[root@serv01 data]# tar -tf upload01.tar  
work/upload/  
work/upload/aa03.txt  
work/upload/aa01.txt  
work/upload/aa04.txt  
work/upload/aa05.txt  
work/upload/aa02.txt  
#删除掉数据,模拟数据丢失  
[root@serv01 data]# rm -rf /work  
#解压  
[root@serv01 data]# tar -xvf upload01.tar-C /  
work/upload/  
work/upload/aa03.txt  
work/upload/aa01.txt  
work/upload/aa04.txt  
work/upload/aa05.txt  
work/upload/aa02.txt  
[root@serv01 data]# ls /work  
upload  
[root@serv01 data]# ls  
upload01.tar  
#压缩时包含文件路径  
[root@serv01 data]# tar -cPvf upload02.tar/work/upload/  
/work/upload/  
/work/upload/aa03.txt  
/work/upload/aa01.txt  
/work/upload/aa04.txt  
/work/upload/aa05.txt  
/work/upload/aa02.txt  
#解压时就不需要指定文件路径了  
[root@serv01 data]# tar -xPvf upload02.tar  
/work/upload/  
/work/upload/aa03.txt  
/work/upload/aa01.txt  
/work/upload/aa04.txt  
/work/upload/aa05.txt  
/work/upload/aa02.txt  
[root@serv01 data]# ls /work/  
upload  

#不一定需要f参数,可以使用重定向解决  
[root@serv01 data]# tar -cv upload03.tar/work/upload/  
tar: upload03.tar: Cannot stat: No suchfile or directory  
tar: Removing leading `/' from member names  
/work/upload/  
/work/upload/aa03.txt  
/work/upload/aa01.txt  
/work/upload/aa04.txt  
/work/upload/aa05.txt  
/work/upload/aa02.txt  
work/upload/00007550000000000000000000000000121766767060120445ustar  rootrootwork/upload/aa03.txt00006440000000000000000000000000121766767060133170ustar rootrootwork/upload/aa01.txt00006440000000000000000000000000121766767060133150ustar  rootrootwork/upload/aa04.txt00006440000000000000000000000000121766767060133200ustar  rootrootwork/upload/aa05.txt00006440000000000000000000000000121766767060133210ustar rootrootwork/upload/aa02.txt00006440000000000000000000000000121766767060133160ustar  rootroottar: Exiting with failurestatus due to previous errors  
#指定路径,重定向到upload03.tar  
[root@serv01 data]# tar -cv /work/upload/> upload03.tar  
tar: Removing leading `/' from member names  
/work/upload/  
/work/upload/aa03.txt  
/work/upload/aa01.txt  
/work/upload/aa04.txt  
/work/upload/aa05.txt  
/work/upload/aa02.txt  
#删除目录  
[root@serv01 data]# rm -rf /work/  
#解压,指定输入源  
[root@serv01 data]# tar -xv -C /  file1  
#查看文件,可以看到所有的配置文件列表都已经存在了(注意是文件路径)  
[root@serv01 data]# vim file1  
#创建conf01.tar,然后T指定文件  
[root@serv01 data]# tar -cPvf conf01.tar -Tfile1  
[root@serv01 data]# tar -tf conf01.tar  
[root@serv01 data]# ls -h conf01.tar -l  
-rw-r--r—. 1 root root 250K Aug  2 18:18 conf01.tar

 

二、tar命令实现——全备和增量备份

[root@serv01 data]# ls /work/upload/  
aa01.txt aa02.txt  aa03.txt  aa04.txt aa05.txt  aa06.txt  
[root@serv01 data]# rm -rf upload01.tar  
#这是全备,无法实现增量备份功能  
[root@serv01 data]# tar -cPvf upload01.tar/work/upload/  
#g指定标志文件  
[root@serv01 data]# tar -g flag -cPvfupload01.tar /work/upload/  
tar: /work/upload: Directory is new  
/work/upload/  
/work/upload/aa01.txt  
/work/upload/aa02.txt  
/work/upload/aa03.txt  
/work/upload/aa04.txt  
/work/upload/aa05.txt  
/work/upload/aa06.txt  
[root@serv01 data]# vim flag  
#新建文件  
[root@serv01 data]# touch /work/upload/aa07.txt  
#更改文件  
[root@serv01 data]# vim/work/upload/aa02.txt  
[root@serv01 data]# tar -g flag -cPvfupload02.tar /work/upload/  
/work/upload/  
/work/upload/aa02.txt  
/work/upload/aa07.txt  
[root@serv01 data]# tar -tPf upload02.tar  
/work/upload/  
/work/upload/aa02.txt  
/work/upload/aa07.txt  

[root@serv01 data]# touch/work/upload/aa08.txt  
[root@serv01 data]# rm -rf/work/upload/aa01.txt  
[root@serv01 data]# ls /work/upload/  
aa02.txt aa03.txt  aa04.txt  aa05.txt aa06.txt  aa07.txt  aa08.txt  
[root@serv01 data]# tar -g flag -cPvfupload03.tar /work/upload/  
/work/upload/  
/work/upload/aa08.txt  

#恢复全备,逐次恢复  
#数据丢失  
[root@serv01 data]# rm -rf /work/*  
[root@serv01 data]# ls /work/  
#先恢复全备  
[root@serv01 data]# tar -g flag -xPvfupload01.tar  
/work/upload/  
/work/upload/aa01.txt  
/work/upload/aa02.txt  
/work/upload/aa03.txt  
/work/upload/aa04.txt  
/work/upload/aa05.txt  
/work/upload/aa06.txt  
#可以看到数据回来了  
[root@serv01 data]# ls /work/upload/  
aa01.txt aa02.txt  aa03.txt  aa04.txt aa05.txt  aa06.txt  
#查看aa02.txt文件,发现内容没有  
[root@serv01 data]# cat/work/upload/aa02.txt  
#恢复文件,从增量备份upload02.tar文件中来  
[root@serv01 data]# tar -g flag -xPvfupload02.tar  
/work/upload/  
/work/upload/aa02.txt  
/work/upload/aa07.txt  
#查看aa02.txt文件,内容回来了  
[root@serv01 data]# cat/work/upload/aa02.txt  
hello world  
#恢复文件,从增量备份upload03.tar文件中来  
[root@serv01 data]# tar -g flag -xPvfupload03.tar  
/work/upload/  
tar: Deleting `/work/upload/aa01.txt'  
/work/upload/aa08.txt  
[root@serv01 data]# ls /work/upload/  
aa02.txt aa03.txt  aa04.txt  aa05.txt aa06.txt  aa07.txt  aa08.txt

 

三、附带一个备份脚本

这个脚本来自这里,linux系统下tar可以实现对文件的备份与恢复,以下shell是完全+增量方式备份

结合crontab,实现周1到周6每天两次增量备份,周日上午增量,下午为完全备份。
2 6,13 * * * /root/backupweb.sh
#!/bin/sh 
# 在crontab里设置,每周日完全备份,每天两次增量备份。 
# 2010-5-26 by lgq 

dayofweek=`date "+%u%H"` 

today=`date "+%Y%m%d%H%M"` 

source=/home/web/ 

backup=/home/web_bak/webtar/ 

cd $backup 

if [ $dayofweek -eq 018 ]; then 
                if [ ! -f "full$today.tar.gz" ];then 
                                rm -rf snapshot 
                                tar -g snapshot -zcf "full$today.tar.gz" $source 
                fi 
else 
                if [ ! -f "inc$today.tar.gz" ];then 
                                tar -g snapshot -zcf "inc$today.tar.gz" $source 
                fi 
fi