<?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; MySQL</title>
	<atom:link href="http://xirang.us/tag/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://xirang.us</link>
	<description>if you see something, say something.</description>
	<lastBuildDate>Fri, 11 Jun 2010 14:23:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>利用cPanel Cron jobs定时备份和优化网站程序以及数据</title>
		<link>http://xirang.us/2010/01/backup-and-optimize-website-by-cpanel-cron-jobs</link>
		<comments>http://xirang.us/2010/01/backup-and-optimize-website-by-cpanel-cron-jobs#comments</comments>
		<pubDate>Sun, 03 Jan 2010 13:06:47 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[信息时代]]></category>
		<category><![CDATA[编程开发]]></category>
		<category><![CDATA[cPanel]]></category>
		<category><![CDATA[Cron jobs]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[网站建设]]></category>

		<guid isPermaLink="false">http://xirang.us/?p=1464</guid>
		<description><![CDATA[如今最优秀的主机面板cPanel已经越来越普及了，如果您有幸用上了采用cPanel面板的主机，那么其中的Cron jobs模块就是雪中送炭了。您不但可以使用Cron jobs结合Linux bash shell脚本更加细致地控制各种自动定时作业——备份数据库、优化数据库和备份网站程序，还可以永久性地省掉几个Wordpress插件，提高Wordpress的运行速度。]]></description>
			<content:encoded><![CDATA[<p>本文发表在<a href="http://xirang.us" target="_blank">嘻来嚷往国际版</a>，作者<a href="http://xirang.us/author/tim" target="_blank">Tim</a>。您可以<a href="http://xirang.us/2010/01/backup-and-optimize-website-by-cpanel-cron-jobs#comments" target="_blank">参与本文评论</a>或是follow本站的<a href="https://twitter.com/xirang" target="_blank" title="嘻来嚷往官方Twitter">Twitter帐号</a>。<br />
<hr size="1" color="#bd1016"/></p>
<p>
	当广大Wordpresser欢欣鼓舞地升级到2.9，享受着在线图片编辑器、回收站等一系列新功能的时候，却发现Wordpress的生理周期突然失调了&mdash;&mdash;以前她能够自动地定时为我们发布文章、清除缓存、备份数据库等等等等，而现在这一切都需要我们手工完成。经过在Wordpress官方论坛一番搜寻，发现原来这是Wordpress 2.9的大BUG&mdash;&mdash;定时模块失效&hellip;&hellip;
</p>
<p>
	又，最近在国内互联网&ldquo;扫黄打非&rdquo;的狂风暴雨下，个人网站的站长们被弄得一个个诚惶诚恐，一觉醒来说不定域名就&ldquo;被&rdquo;停止解析，服务器就&ldquo;被&rdquo;关停！所以，及时备份网站的程序和数据对于当下的中国站长们极为重要，然而Wordpress 2.9偏偏又在这当口来一个定时模块失效，这的确是雪上加霜！
</p>
<p style="text-align: center;">
	<a href="http://cpanel.net/" target="_blank"><img alt="CPanel" class="alignnone size-full wp-image-1465" height="71" src="http://xirang.us/media/2010/01/cpanel.jpg" style="" title="CPanel" width="761" /></a>
</p>
<p>
	不过，如今最优秀的主机面板cPanel已经越来越普及了，如果您有幸用上了采用cPanel面板的主机，那么其中的Cron jobs模块就是雪中送炭了。您不但可以使用Cron jobs结合Linux bash shell脚本更加细致地控制各种自动定时作业&mdash;&mdash;<a href="http://xirang.us/2010/01/backup-and-optimize-website-by-cpanel-cron-jobs#dbbackup">备份数据库</a>、<a href="http://xirang.us/2010/01/backup-and-optimize-website-by-cpanel-cron-jobs#dbopt">优化数据库</a>和<a href="http://xirang.us/2010/01/backup-and-optimize-website-by-cpanel-cron-jobs#progbackup">备份网站程序</a>，还可以永久性地省掉几个Wordpress插件，提高Wordpress的运行速度。
</p>
<h1>
	<a name="dbbackup"></a>定时自动备份MySQL数据库<br />
</h1>
<p>
	<img alt="Cron jobs" class="alignnone size-full wp-image-1466" height="187" src="http://xirang.us/media/2010/01/cron-jobs.jpg" style="cursor: default; float: right;" title="Cron jobs" width="508" />如右图所示，首先请在您的cPanel面板中的Advanced部分找到Cron jobs。点击进入，您就会看到Cron jobs的操作页面，不过先别着急，我们要首先编写备份网站数据库的Linux bash shell脚本。
</p>
<p>
	我们需要首先用mysqldump命令导出整个数据库至一个文本文件，然后用压缩工具将数据文件压缩打包，最后用mutt命令将数据库压缩包发送至您指定的电子邮件地址。
</p>
<p>
	现在我们开始，请用远程登录软件（如SecureCRT、Putty）或者FTP软件（如FileZilla、FireFTP）连接到您的主机，并创建一个存储备份脚本和临时文件的文件夹，比如我在我的主机根目录建立了一个backup目录。根据cPanel主机的文件夹格式，该目录的绝对路径应为/home/cPanel登录名/backup。
</p>
<p>
	下面以/home/xirangus/backup目录为例。请打开任意一个文本编辑软件，录入如下内容。[XXX]处请更换为您的真实数据（去掉[和]）。<span id="more-1464"></span>
</p>
<div class="entry">
<div class="entry">
<style>.codecolorer,.codecolorer-container table td.line-numbers{padding:5px}.codecolorer,.codecolorer-container{text-align:left}code.codecolorer{padding:2px}.codecolorer-container{margin-bottom:10px;border:1px solid #9f9f9f}.codecolorer-container *,.codecolorer-container,.codecolorer *,.codecolorer{font:13px/1.4em Monaco,Lucida Console,monospace}.codecolorer-container table,.codecolorer-container table td,.codecolorer-noborder table td.line-numbers,.codecolorer-noborder{border:0}.codecolorer-container table td{margin:0;padding:0}.codecolorer-container table td.line-numbers{text-align:right;background:#eee;color:#888;border-right:1px solid #9f9f9f}.codecolorer-container table td.line-numbers div{width:23px}.dawn .codecolorer,.dawn{background:#f9f9f9}.dawn .codecolorer,.dawn,code.dawn .sy0,code.dawn .br0,.dawn .codecolorer .sy0,.dawn .codecolorer .br0{color:#080808}code.dawn .coMULTI,code.dawn .co4,code.dawn .co3,code.dawn .co2,code.dawn .co1,code.dawn .co0,.dawn .codecolorer .coMULTI,.dawn .codecolorer .co4,.dawn .codecolorer .co3,.dawn .codecolorer .co2,.dawn .codecolorer .co1,.dawn .codecolorer .co0{color:#5a525f;font-style:italic}code.dawn .re3,code.dawn .nu0,.dawn .codecolorer .re3,.dawn .codecolorer .nu0,.dawn .xml .re0{color:#811f24}code.dawn .es1,code.dawn .es0,code.dawn .st_h,code.dawn .st0,.dawn .codecolorer .es1,.dawn .codecolorer .es0,.dawn .codecolorer .st_h,.dawn .codecolorer .st0{color:#0b6125}code.dawn .me2,code.dawn .me1,.dawn .codecolorer .me2,.dawn .codecolorer .me1{color:#bf4f24}code.dawn .sy1,code.dawn .kw2,code.dawn .kw1,.dawn .codecolorer .sy1,.dawn .codecolorer .kw2,.dawn .codecolorer .kw1{color:#794938}code.dawn .re2,code.dawn .kw5,code.dawn .kw4,code.dawn .kw3,.dawn .codecolorer .re2,.dawn .codecolorer .kw5,.dawn .codecolorer .kw4,.dawn .codecolorer .kw3,.dawn .xml .re1{color:#a71d5d}code.dawn .re1,code.dawn .re0,.dawn .codecolorer .re1,.dawn .codecolorer .re0{color:#234a97}</style>
<div class="codecolorer-container bash dawn" style="overflow: auto; white-space: nowrap; width: 860px;">
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="line-numbers">
<div>
								1<br />
								2<br />
								3<br />
								4<br />
								5<br />
								6
							</div>
</td>
<td>
<div class="bash codecolorer" style="white-space: nowrap;">
								<span class="kw3">cd</span> <span class="sy0">/</span>home<span class="sy0">/</span>xirangus<span class="sy0">/</span>backup <span class="co0">#切换到工作目录</span><br />
								<span class="re2">stamp</span>=$<span class="br0">(</span><span class="kw2">date</span> + <span class="sy0">%</span>y<span class="sy0">%</span>m<span class="sy0">%</span>d<span class="br0">)</span> <span class="co0">#获取当前日期</span><br />
								mysqldump -u<span class="br0">[</span>数据库用户名<span class="br0">]</span> -p<span class="br0">[</span>数据库密码<span class="br0">]</span> <span class="br0">[</span>数据库名<span class="br0">]</span> <span class="sy0">&gt;</span> &nbsp;db_backup_<span class="re1">$</span><span class="re2">stamp</span>.sql <span class="co0">#导出数据库</span><br />
								<span class="kw2">bzip2</span> <span class="re5">-z</span> <span class="re5">-9</span> <span class="re5">-f</span> db_backup_<span class="re2">$stamp</span>.sql <span class="co0">#压缩数据库</span><br />
								mutt <span class="br0">[</span>电子邮件地址<span class="br0">]</span> <span class="re5">-a</span>&nbsp;db_backup_<span class="re1">$</span><span class="re2">stamp</span>.sql.bz2 <span class="re5">-s</span> <span class="st0">&quot;Database Backup&quot;</span> <span class="co0">#邮件发送</span><br />
								<span class="kw2">rm</span> db_backup_<span class="re1">$suffix</span>.sql.bz2 <span class="co0">#移除临时文件</span>
							</div>
</td>
</tr>
</tbody>
</table></div>
<p>
			其中第4行采用了bzip2来压缩数据，如果您的主机不支持bzip2，请更换为使用tar或zip等命令来压缩数据，具体情况请咨询您的主机商。
		</p>
<p>
			脚本录入完毕后，请将其保存，比如我将其命名为dbbackup.sh。然后上传到刚刚建立的/home/xirangus/backup目录下，并<strong>更改该脚本文件的权限为755</strong>。
		</p>
<p>
			大功快要告成，现在请点击cPanel中的Cron jobs图标，选择Standard进入标准模式。将/home/xirangus/backup/dbbackup.sh填入Command to run中，并选择定时运行方式，如下图。
		</p>
<p style="text-align: center;">
			<img alt="Add Cron Jobs/添加定时工作项目" class="alignnone size-full wp-image-1467" height="502" src="http://xirang.us/media/2010/01/cron-jobs-add.png" title="Add Cron Jobs/添加定时工作项目" width="758" />
		</p>
<p>
			这里的时间是以服务器的时区为准，所以您需要自己换算一下。嘻来嚷往所在的<a href="http://xirang.us/r.php?t=a&amp;id=justhost" target="_blank">Just Host</a>的数据中心位于美国中部时区，比中国标准时间晚14个小时，所以按照上图设置，每天中国标准时间晚上8点，嘻来嚷往的数据库备份邮件就会自动被发送到我的邮箱里。
		</p>
<h1>
			<a name="dbopt"></a>定时自动优化MySQL数据库<br />
		</h1>
<p>
			频繁地对数据库进行各种操作，会使数据库产生一些错误和冗余数据而导致性能下降，因此及时修复和优化数据库也是非常必要的。我们可以采用mysqlcheck命令对MySQL数据库进行修复和优化。脚本文件如下。
		</p>
<div class="entry">
<div class="codecolorer-container bash dawn" style="overflow: auto; white-space: nowrap; width: 860px;">
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="line-numbers">
<div>
									1<br />
									2
								</div>
</td>
<td>
<div class="bash codecolorer" style="white-space: nowrap;">
									mysqlcheck -u<span class="br0">[</span>数据库用户名<span class="br0">]</span> -p<span class="br0">[</span>数据库密码<span class="br0">]</span> <span class="re5">&#8211;auto-repair</span> <span class="re5">&#8211;database</span> <span class="br0">[</span>数据库名<span class="br0">]</span> <span class="co0">#检查并自动修复数据库</span><br />
									mysqlcheck -u<span class="br0">[</span>数据库用户名<span class="br0">]</span> -p<span class="br0">[</span>数据库密码<span class="br0">]</span> <span class="re5">-o</span> <span class="re5">&#8211;database</span> <span class="br0">[</span>数据库名<span class="br0">]</span> <span class="co0">#优化数据库</span>
								</div>
</td>
</tr>
</tbody>
</table></div>
<p>
				如何让Cron jobs自动运行脚本就不再赘述了。
			</p>
</p></div>
<h1>
			<a name="progbackup"></a>定时自动备份网站程序<br />
		</h1>
<p>
			有了前面数据库的列子，备份程序文件就简单多了，稍稍修改一下脚本文件就行了。还是以Wordpress为例吧，一般我们修改得最多的就是主题文件，所以我们就让Cron jobs定时备份Wordpress的themes文件夹吧。直接给出脚本文件。
		</p>
<div class="entry">
<div class="codecolorer-container bash dawn" style="overflow: auto; white-space: nowrap; width: 860px;">
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="line-numbers">
<div>
									1<br />
									2<br />
									3<br />
									4<br />
									5<br />
									6
								</div>
</td>
<td>
<div class="bash codecolorer" style="white-space: nowrap;">
									<span class="kw3">cd</span> <span class="sy0">/</span>home<span class="sy0">/</span>xirangus<span class="sy0">/</span>backup <span class="co0">#切换工作目录</span><br />
									<span class="re2">stamp</span>=$<span class="br0">(</span><span class="kw2">date</span> + <span class="sy0">%</span>y<span class="sy0">%</span>m<span class="sy0">%</span>d<span class="br0">)</span> <span class="co0">#获取当前日期</span><br />
									<span class="kw2">tar</span> <span class="re5">-cvf</span> theme_<span class="re1">$stamp</span>.tar <span class="sy0">/</span>home<span class="sy0">/</span>xirangus<span class="sy0">/</span>public_html<span class="sy0">/</span>wp-content<span class="sy0">/</span>themes <span class="co0">#打包主题目录</span><br />
									<span class="kw2">bzip2</span> <span class="re5">-z</span> <span class="re5">-9</span> <span class="re5">-f</span> theme_<span class="re1">$stamp</span>.tar <span class="co0">#压缩</span><br />
									mutt [电子邮件地址] <span class="re5">-a</span> theme_<span class="re1">$stamp</span>.tar.bz2 <span class="re5">-s</span> <span class="st0">&quot;Themes Backup&quot;</span> <span class="co0">#邮件发送</span><br />
									<span class="kw2">rm</span> theme_<span class="re1">$stamp</span>.tar.bz2 <span class="co0">#移除临时文件</span>
								</div>
</td>
</tr>
</tbody>
</table></div>
</p></div>
</p></div>
</div>
<p>
	虽然tar命令可以使用-j参数进行bzip2的打包+压缩，但是不能指定压缩级别，所以我还是采用了tar先打包，接着使用bzip2最高级别压缩的方式。
</p>
<p>
	就介绍这么多吧，如果您熟悉Linux，那么您还可以尽情发挥，让Cron jobs完成更多的自动定时作业，使网站的运行更加高效和有保障。
</p>
<div style="clear:both">
<h3>著作权信息（站外使用本文请保留以下内容）</h3>
<hr size="2" />
<table width="100%">
<tbody>
<tr>
<td>文章作者：<a  href="http://xirang.us/author/tim">Tim</a><br />原始站点：<a title="嘻来嚷往" href="http://xirang.us/" target="_self">嘻来嚷往 &#8211; IF YOU SEE SOMETHING, SAY SOMETHING.</a><br />原文标题：利用cPanel Cron jobs定时备份和优化网站程序以及数据<br />发表日期：2010年01月03日<br />原文链接：<a href="http://xirang.us/2010/01/backup-and-optimize-website-by-cpanel-cron-jobs" >http://xirang.us/2010/01/backup-and-optimize-website-by-cpanel-cron-jobs</a></td>
<td class="author_img"><center><img alt='' src='http://0.gravatar.com/avatar/6f9a9d5526438d3a59313a2603020217?s=100&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D100&amp;r=R' class='avatar avatar-100 photo' height='100' width='100' /></center></td>
</tr>
<tr>
<td>版权协议：本作品采用<a rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.5/cn/" target="_blank">知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议</a>进行许可，作品中的文字和图像若非明确指出著作权归属则均受到该协议<a title="知识共享协议法律文本" href="http://creativecommons.org/licenses/by-nc-nd/2.5/cn/legalcode" target="_blank">法律文本</a>的保护。站外使用请严格遵守协议，<a href="http://xirang.us/" target="_self">嘻来嚷往</a>站保留诉诸法律的权利！如有异议请与站长<a title="联系我们" href="http://xirang.us/affairs" target="_self">联系</a>。</td>
<td><center><img src="http://i.creativecommons.org/l/by-nc-nd/2.5/cn/88x31.png" alt="BY-NC-ND" /></center></td>
</tr>
</tbody>
</table>
<hr size="2" /></div>
<p style="text-align:center"><a href="http://clustrmaps.com/counter/maps.php?url=http://xirang.us" id="clustrMapsLink" title="嘻来嚷往双站总独立IP访问量" target="_blank"><img src="http://clustrmaps.com/counter/index2.php?url=http://xirang.us" alt="" id="clustrMapsImg" /></a><img src="http://nojsstats.appspot.com/UA-9442677-1/xirang.us" alt="" /></p>
<img src="http://xirang.us/?ak_action=api_record_view&id=1464&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xirang.us/2010/01/backup-and-optimize-website-by-cpanel-cron-jobs/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
