<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>风叶 &#187; tar</title>
	<atom:link href="http://blog.myhnet.cn/tag/tar/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.myhnet.cn</link>
	<description>秋湍泻石髓 风叶聚云根</description>
	<lastBuildDate>Fri, 20 Aug 2010 15:05:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>linux下用tar来进行增量备份</title>
		<link>http://blog.myhnet.cn/2010/08/06/perform-a-incremental-backup-with-tar-in-linux/</link>
		<comments>http://blog.myhnet.cn/2010/08/06/perform-a-incremental-backup-with-tar-in-linux/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 12:51:53 +0000</pubDate>
		<dc:creator>myhnet</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[incremental backup]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[tar -g]]></category>
		<category><![CDATA[增量备份]]></category>
		<category><![CDATA[备份]]></category>

		<guid isPermaLink="false">http://blog.myhnet.cn/?p=1026</guid>
		<description><![CDATA[近来无聊，博客又好久没有更新了，权且来说说linux下面的文件备份吧。 备份无非就是全量备份与增量备份。linux下面的全量备份自然不用说，很多命令与软件都能实现；增量备份相对来说软件就要少些，我常用的就是rsync与tar。 rsync与tar相比，rsync的优点在于可以异机备份，缺点在用不能对文件进行压缩。tar的优点就是可以调用bzip2或者gzip进行压缩，但是只限于本机备份。rsync我这里就不多讲了，今天就来说说tar吧 开题不说闲话，其他参数格式我都不说了，说说我们今天要用的参数格式： tar -g /path/to/info_file -zcvf /path/to/files_need_backup 在这里对info_file info_file是一个纯文本文件，以UNIX时间记录备份的时间戳。这个文件一般是第一次全备时自动创建，也可以手动创建。如果你手动创建这个文件，那tar就只会备份在这个时间戳之后修改过的文件，所以严格意义上来说，tar的增量备份并不能算做是增量备份，而只是按时间戳备份而已。这点远远比不上rsync。 ok，了解了一下概念，我们正式开始： $ mkdir dest$ touch dest/{1,2,3}$ tar -g /tmp/timestamp -zcvf backup0.tgz dest/dest/dest/1dest/2dest/3$ cat /tmp/timestamp 1281096816 由于/tmp/timestamp原来是不存在的，所以这次备份下来的backup0.tgz就是一个全备份文件。备份之后的timestamp文件内容是1281096816。 然后我们继续。这个时候就要记得info_file要继续用上次全备文件之后文件： $ tar -g /tmp/timestamp -zcvf backup1.tgz dest/dest/dest/4dest/5dest/6$ cat /tmp/timestamp 1281097104 我们可以看到，这次生成的backup1.tgz并没有备份还在dest目录下面的文件1, 2, 3，而只备份了新生成的文件4, 5, 6。 然后，我们再来一个测试 $ touch dest/{7,8}$ date +%s &#62; /tmp/timestamp$ touch dest/9$ tar -g [...]]]></description>
			<content:encoded><![CDATA[<p>近来无聊，博客又好久没有更新了，权且来说说linux下面的文件备份吧。</p>
<p>备份无非就是全量备份与增量备份。linux下面的全量备份自然不用说，很多命令与软件都能实现；增量备份相对来说软件就要少些，我常用的就是rsync与tar。</p>
<p>rsync与tar相比，rsync的优点在于可以异机备份，缺点在用不能对文件进行压缩。tar的优点就是可以调用bzip2或者gzip进行压缩，但是只限于本机备份。rsync我这里就不多讲了，今天就来说说tar吧</p>
<p>开题不说闲话，其他参数格式我都不说了，说说我们今天要用的参数格式：</p>
<div class="hl-surround"><div class="hl-main">tar -g /path/to/info_file -zcvf /path/to/files_need_backup</div></div>
<p>在这里对info_file<br />
info_file是一个纯文本文件，以UNIX时间记录备份的时间戳。这个文件一般是第一次全备时自动创建，也可以手动创建。如果你手动创建这个文件，那tar就只会备份在这个时间戳之后修改过的文件，所以严格意义上来说，tar的增量备份并不能算做是增量备份，而只是按时间戳备份而已。这点远远比不上rsync。</p>
<p>ok，了解了一下概念，我们正式开始：</p>
<div class="hl-surround"><div class="hl-main">$ mkdir dest<br />$ touch dest/{1,2,3}<br />$ tar -g /tmp/timestamp -zcvf backup0.tgz dest/<br />dest/<br />dest/1<br />dest/2<br />dest/3<br />$ cat /tmp/timestamp <br />1281096816</div></div>
<p>由于/tmp/timestamp原来是不存在的，所以这次备份下来的backup0.tgz就是一个全备份文件。备份之后的timestamp文件内容是1281096816。</p>
<p>然后我们继续。这个时候就要记得info_file要继续用上次全备文件之后文件：</p>
<div class="hl-surround"><div class="hl-main">$ tar -g /tmp/timestamp -zcvf backup1.tgz dest/<br />dest/<br />dest/4<br />dest/5<br />dest/6<br />$ cat /tmp/timestamp <br />1281097104</div></div>
<p>我们可以看到，这次生成的backup1.tgz并没有备份还在dest目录下面的文件1, 2, 3，而只备份了新生成的文件4, 5, 6。</p>
<p>然后，我们再来一个测试</p>
<div class="hl-surround"><div class="hl-main">$ touch dest/{7,8}<br />$ date +%s &gt; /tmp/timestamp<br />$ touch dest/9<br />$ tar -g /tmp/timestamp -zcvf backup2.tgz dest/<br />dest/9<br />$ cat /tmp/timestamp <br />1281097553</div></div>
<p>我在创建文件7, 8之后，利用date命令手动刷新了一下info_file的内容，然后再创建了文件9，之后的备份，大家就可以很明显的看到，文件7, 8并没有被备份。</p>
<p>大家应该也就应该看出来了，这就存在一个问题，就是-g做增量备份时的这个info_file到底记录的是什么时刻的时间。大家可以通过实验得到，info_file的更新时间在在.tgz文件之后的，但究竟记录的时间是不是刚刚开始时间呢？</p>
<p>这个我们也可以通过一个小实验来得到：</p>
<div class="hl-surround"><div class="hl-main">$ for i in `seq 1 100`; do dd if=/dev/zero of=dest/test$i bs=1M count=10;done<br />$ date +%s &amp;&amp; tar -g /tmp/timestamp -zcf backup3.tgz dest &amp;&amp; cat /tmp/timestamp &amp;&amp; date +%s<br />1281098446<br />1281098523<br />1281098524</div></div>
<p>怎么样，很明显了吧。如果直接用这种方式备份的话，那么<strong><font color=red>从你备份开始到备份结束之间生成的文件是不会被备份的</font></strong>。</p>
<p>不过，这也难不倒聪明的你吧。嘿嘿。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.myhnet.cn/2010/08/06/perform-a-incremental-backup-with-tar-in-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>如何在Linux下创建与解压zip, tar, tar.gz和tar.bz2文件</title>
		<link>http://blog.myhnet.cn/2009/01/02/how-to-create-and-extract-zip-tar-targz-and-tarbz2-files-in-linux/</link>
		<comments>http://blog.myhnet.cn/2009/01/02/how-to-create-and-extract-zip-tar-targz-and-tarbz2-files-in-linux/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 14:31:54 +0000</pubDate>
		<dc:creator>myhnet</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[解压]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[tar.bz2]]></category>
		<category><![CDATA[tar.gz]]></category>
		<category><![CDATA[tgz]]></category>
		<category><![CDATA[zip]]></category>
		<category><![CDATA[压缩]]></category>
		<category><![CDATA[打包]]></category>
		<category><![CDATA[文档]]></category>

		<guid isPermaLink="false">http://blog.myhnet.cn/?p=357</guid>
		<description><![CDATA[这么多年来，数据压缩对我们来说是非常有用的。无论是在邮件中发送的图片用的zip文件还是在服务器压缩数据文件，我们都可以让下载更容易或者有效的节约磁盘空间。某些压缩格式有时允许我们以60％的比率（甚至更高）压缩文件。下面我将会给大家演示如何用这些命令在Linux下面去压缩文件或者目录。我们将学习zip, tar, tar.gz和tar.bz2等压缩格式的基本用法。这几个是在Linux里面常用的压缩格式。 在我们探究这些用法之前，我想先跟大家分享一下使用不同压缩格式的经验。当然，我这里讲到的只是其中的一些用法，除我讲到的之外，他们还有更多的地方值得我们探讨。我已经意识到我需要了解两到三种压缩格式，才能更好的使用他们。zip格式是第一个需要了解的格式。因为它实际上已成为压缩文件的标准选择，而且它在windows上也能使用。我经常用zip格式压缩那些需要共享给windows用户的文件。如果只是共享给linux用户或者Mac用户，那我偏向于选择tar.gz格式。 ZIP zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台，比如Linux， Windows以及Mac OS，上使用。缺点就是支持的压缩率不是很高，而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说，我们步入正题吧： 我们可以使用下列的命令压缩一个目录： # zip -r archive_name.zip directory_to_compress 下面是如果解压一个zip文档： # unzip archive_name.zip TAR Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件，他仅仅只是一个打包工具，并不负责压缩。下面是如何打包一个目录： # tar -cvf archive_name.tar directory_to_compress 如何解包： # tar -xvf archive_name.tar.gz 上面这个解包命令将会将文档解开在当前目录下面。当然，你也可以用这个命令来捏住解包的路径： # tar -xvf archive_name.tar -C /tmp/extract_here/ TAR.GZ 这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的，而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录： # tar -zcvf archive_name.tar.gz directory_to_compress 解压缩： # tar -zxvf archive_name.tar.gz 上面这个解包命令将会将文档解开在当前目录下面。当然，你也可以用这个命令来捏住解包的路径： # tar -zxvf archive_name.tar.gz -C [...]]]></description>
			<content:encoded><![CDATA[<p>这么多年来，数据压缩对我们来说是非常有用的。无论是在邮件中发送的图片用的zip文件还是在服务器压缩数据文件，我们都可以让下载更容易或者有效的节约磁盘空间。某些压缩格式有时允许我们以60％的比率（甚至更高）压缩文件。下面我将会给大家演示如何用这些命令在Linux下面去压缩文件或者目录。我们将学习zip, tar, tar.gz和tar.bz2等压缩格式的基本用法。这几个是在Linux里面常用的压缩格式。</p>
<p>在我们探究这些用法之前，我想先跟大家分享一下使用不同压缩格式的经验。当然，我这里讲到的只是其中的一些用法，除我讲到的之外，他们还有更多的地方值得我们探讨。我已经意识到我需要了解两到三种压缩格式，才能更好的使用他们。zip格式是第一个需要了解的格式。因为它实际上已成为压缩文件的标准选择，而且它在windows上也能使用。我经常用zip格式压缩那些需要共享给windows用户的文件。如果只是共享给linux用户或者Mac用户，那我偏向于选择tar.gz格式。</p>
<p><b>ZIP</b><br />
zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台，比如Linux， Windows以及Mac OS，上使用。缺点就是支持的压缩率不是很高，而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说，我们步入正题吧：<br />
我们可以使用下列的命令压缩一个目录：</p>
<div class="hl-surround"><div class="hl-main"># zip -r archive_name.zip directory_to_compress</div></div>
<p>下面是如果解压一个zip文档：</p>
<div class="hl-surround"><div class="hl-main"># unzip archive_name.zip</div></div>
<p><b>TAR</b><br />
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件，他仅仅只是一个打包工具，并不负责压缩。下面是如何打包一个目录：</p>
<div class="hl-surround"><div class="hl-main"># tar -cvf archive_name.tar directory_to_compress</div></div>
<p>如何解包：</p>
<div class="hl-surround"><div class="hl-main"># tar -xvf archive_name.tar.gz</div></div>
<p>上面这个解包命令将会将文档解开在当前目录下面。当然，你也可以用这个命令来捏住解包的路径：</p>
<div class="hl-surround"><div class="hl-main"># tar -xvf archive_name.tar -C /tmp/extract_here/</div></div>
<p><b>TAR.GZ</b><br />
这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的，而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录：</p>
<div class="hl-surround"><div class="hl-main"># tar -zcvf archive_name.tar.gz directory_to_compress</div></div>
<p>解压缩：</p>
<div class="hl-surround"><div class="hl-main"># tar -zxvf archive_name.tar.gz</div></div>
<p>上面这个解包命令将会将文档解开在当前目录下面。当然，你也可以用这个命令来捏住解包的路径：</p>
<div class="hl-surround"><div class="hl-main"># tar -zxvf archive_name.tar.gz -C /tmp/extract_here/</div></div>
<p><b>TAR.BZ2</b><br />
这种压缩格式是我们提到的所有方式中压缩率最好的。当然，这也就意味着，它比前面的方式要占用更多的CPU与时间。这个就是你如何使用tar.bz2进行压缩。</p>
<div class="hl-surround"><div class="hl-main"># tar -jcvf archive_name.tar.bz2 directory_to_compress</div></div>
<p>上面这个解包命令将会将文档解开在当前目录下面。当然，你也可以用这个命令来捏住解包的路径：</p>
<div class="hl-surround"><div class="hl-main"># tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/</div></div>
<p>数据压缩是非常有用的，尤其是对于备份来说。所以，你现在应该考虑在你的备份脚本中使用你在这里学到的压缩方式备份你基本的规则文件以减小你备份文件的大小。</p>
<p>过段时间之后，你就会意识到，在压缩率与CPU占用时间上会有一个平衡，你也要学会如何去权衡什么时候你需要一个快但是压缩率低，什么时候需要一个压缩率高但是CPU点用高的压缩方式，然后你才能避免无谓的空间与时间。</p>
<p>来源：<a href="http://www.simplehelp.net/2008/12/15/how-to-create-and-extract-zip-tar-targz-and-tarbz2-files-in-linux/">http://www.simplehelp.net/2008/12/15/how-to-create-and-extract-zip-tar-targz-and-tarbz2-files-in-linux/</a><br />
译者注：<br />
原作者弄错了一个概念。tar这个命令并没有压缩的功能，它只是一个打包的命令。tar.gz与tar.bz2都是在tar命令中调用了别的压缩命令实现了一个压缩的功能，实际是实行一个先打包后压缩的过程，而且，tar.gz与tar.bz2只是一个公认的一个通行后缀而已，并不是一种压缩格式（真正实现压缩的是gzip与bzip2，这是后话。），tar.gz在很多时候，也会被简写成tgz。<br />
在译文中，大部分地方尊重原作者，只是在tar的功能解释时，我做了修改。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.myhnet.cn/2009/01/02/how-to-create-and-extract-zip-tar-targz-and-tarbz2-files-in-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>小技巧集</title>
		<link>http://blog.myhnet.cn/2008/06/24/%e5%b0%8f%e6%8a%80%e5%b7%a7%e9%9b%86/</link>
		<comments>http://blog.myhnet.cn/2008/06/24/%e5%b0%8f%e6%8a%80%e5%b7%a7%e9%9b%86/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 07:56:30 +0000</pubDate>
		<dc:creator>myhnet</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ISO]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[mysqldump]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[指定目录]]></category>
		<category><![CDATA[添加右键菜单]]></category>

		<guid isPermaLink="false">http://blog.myhnet.cn/2008/07/15/%e5%b0%8f%e6%8a%80%e5%b7%a7%e9%9b%86/</guid>
		<description><![CDATA[tar解压一个包到指定目录 （注意：目标目录一定要事先存在） tar -xvf file.tar -C destination-directory 查看本机IP地址： ifconfig &#124; sed -ne 's/ *inet addr:\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\) *B.*/Your IP is:\1/p' 制作ISO文件 mkisofs -r -J -V widebright -o widebright.iso /widebright mysqldump时只导出数据库结构，不导出数据 mysql -uuser -ppassword -d databases &#38;gt; file ubuntu中添加右键菜单(terminal) sudo apt-get install nautilus-open-terminal mysql中显示正在进行的查询进程 show processlist； 创建包含所有图片的HTML页面 for i in `find . -type f \( -name &#34;*.jpg&#34; -o [...]]]></description>
			<content:encoded><![CDATA[<p>tar解压一个包到指定目录 （注意：目标目录一定要事先存在）</p>
<div class="hl-surround"><div class="hl-main">tar -xvf file.tar -C destination-directory</div></div>
<p>查看本机IP地址：</p>
<div class="hl-surround"><div class="hl-main">ifconfig | sed -ne 's/ *inet addr:\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\) *B.*/Your IP is:\1/p'</div></div>
<p>制作ISO文件</p>
<div class="hl-surround"><div class="hl-main">mkisofs -r -J -V widebright -o widebright.iso /widebright</div></div>
<p>mysqldump时只导出数据库结构，不导出数据</p>
<div class="hl-surround"><div class="hl-main">mysql -uuser -ppassword -d databases &amp;gt; file</div></div>
<p>ubuntu中添加右键菜单(terminal)</p>
<div class="hl-surround"><div class="hl-main">sudo apt-get install nautilus-open-terminal</div></div>
<p>mysql中显示正在进行的查询进程</p>
<div class="hl-surround"><div class="hl-main">show processlist；</div></div>
<p>创建包含所有图片的HTML页面</p>
<div class="hl-surround"><div class="hl-main">for i in `find . -type f \( -name &quot;*.jpg&quot; -o -name &quot;*.gif&quot; -o -name &quot;*.png&quot; \) -exec echo &quot;{}&quot; \;|sed -e &quot;s/\ /\%20/g&quot;`; do echo &quot;&lt;img src=\&quot;$i\&quot;&gt;&quot; &gt;&gt; images.html;done</div></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.myhnet.cn/2008/06/24/%e5%b0%8f%e6%8a%80%e5%b7%a7%e9%9b%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
