<?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>深度VPS &#187; Crontab</title>
	<atom:link href="http://www.deepvps.com/tag/crontab/feed" rel="self" type="application/rss+xml" />
	<link>http://www.deepvps.com</link>
	<description>专注VPS技术，关注前端技术</description>
	<lastBuildDate>Sat, 04 Feb 2023 14:00:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>使用logrotate管理VPS日志文件</title>
		<link>http://www.deepvps.com/logrotate-management-log-files.html</link>
		<comments>http://www.deepvps.com/logrotate-management-log-files.html#comments</comments>
		<pubDate>Mon, 07 Jun 2010 04:35:00 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS管理维护]]></category>
		<category><![CDATA[Crontab]]></category>
		<category><![CDATA[logrotate]]></category>
		<category><![CDATA[VPS]]></category>
		<category><![CDATA[日志]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=455</guid>
		<description><![CDATA[logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除，并创建新的日志文件，我们把它叫做“转储”。
我们可以根据日志文件的大小，也可以根据其天数来转储，这个过程一般通过 crontab程序来执行。
logrotate 程序还可以用于压缩日志文件，以及发送日志到指定的E-mail 。
logrotate 的配置文件是 /etc/logrotate.conf 主要参数如下表：
下面的配置是deepvps使用的配置文件，大家可以作为参考。
logrotate.conf
/home/www/logs/*.log {
daily
missingok
compress
delaycompress
dateext
create
notifempty
sharedscripts
postrotate
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
endscript
}
参数 功能
daily——指定转储周期为每天
missingok——指的是如果找不到这个log档案，就忽略过去
compress——通过gzip 压缩转储以后的日志
delaycompress 和compress一起使用时，转储的日志文件到下一次转储时才压缩
notifempty——如果是空文件的话，不转储
postrotate/endscript——在转储以后需要执行的命令可以放入这个对，这两个关键字必须单独成行
crontab:
59 23 * * * root logrotatef /usr/local/nginx/conf/logrotate.conf
]]></description>
			<content:encoded><![CDATA[<p>logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除，并创建新的日志文件，我们把它叫做“转储”。<br />
我们可以根据日志文件的大小，也可以根据其天数来转储，这个过程一般通过 crontab程序来执行。<br />
logrotate 程序还可以用于压缩日志文件，以及发送日志到指定的E-mail 。<br />
logrotate 的配置文件是 /etc/logrotate.conf 主要参数如下表：</p>
<p><span id="more-455"></span>下面的配置是<a href="http://www.deepvps.com" target="_blank">deepvps</a>使用的配置文件，大家可以作为参考。<br />
<strong>logrotate.conf</strong></p>
<blockquote><p>/home/www/logs/*.log {<br />
daily<br />
missingok<br />
compress<br />
delaycompress<br />
dateext<br />
create<br />
notifempty<br />
sharedscripts<br />
postrotate<br />
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`<br />
endscript<br />
}</p></blockquote>
<p>参数 功能<br />
daily——指定转储周期为每天<br />
missingok——指的是如果找不到这个log档案，就忽略过去<br />
compress——通过gzip 压缩转储以后的日志<br />
delaycompress 和compress一起使用时，转储的日志文件到下一次转储时才压缩<br />
notifempty——如果是空文件的话，不转储<br />
postrotate/endscript——在转储以后需要执行的命令可以放入这个对，这两个关键字必须单独成行</p>
<p>crontab:</p>
<blockquote><p>59 23 * * * root logrotatef /usr/local/nginx/conf/logrotate.conf</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/logrotate-management-log-files.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>编写每天定时切割Nginx日志的脚本</title>
		<link>http://www.deepvps.com/nginx-cut-the-log-scripts.html</link>
		<comments>http://www.deepvps.com/nginx-cut-the-log-scripts.html#comments</comments>
		<pubDate>Fri, 04 Jun 2010 16:02:40 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS管理维护]]></category>
		<category><![CDATA[Crontab]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[日志]]></category>
		<category><![CDATA[脚本]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=452</guid>
		<description><![CDATA[站长最关心的事情就是搜索引擎的收录情况，而查看网站日志是了解搜索引擎的蜘蛛有没有访问过网站的最好方法。下面是deepvps自己用的自动每天定时切割Nginx日志的脚本，很方便很好用，推荐给大家使用。本脚本也是参考了张宴老师的文章，再次感谢张宴老师。
1、创建脚本/usr/local/nginx/sbin/cut_nginx_log.sh
vi /usr/local/nginx/sbin/cut_nginx_log.sh
输入以下内容：
#!/bin/bash
# This script run at 00:00
# The Nginx logs path
logs_path=&#8221;/home/www/logs/&#8221;
mkdir -p ${logs_path}$(date -d &#8220;yesterday&#8221; +&#8221;%Y&#8221;)/$(date -d &#8220;yesterday&#8221; +&#8221;%m&#8221;)/
mv ${logs_path}access.log ${logs_path}$(date -d &#8220;yesterday&#8221; +&#8221;%Y&#8221;)/$(date -d &#8220;yesterday&#8221; +&#8221;%m&#8221;)/access_$(date -d &#8220;yesterday&#8221; +&#8221;%Y%m%d&#8221;).log
kill -USR1 `cat /usr/local/nginx/nginx.pid`
2、设置crontab，每天凌晨00:00切割nginx访问日志
crontab -e
输入以下内容：
00 00 * * * /bin/bash  /usr/local/nginx/sbin/cut_nginx_log.sh
]]></description>
			<content:encoded><![CDATA[<p>站长最关心的事情就是搜索引擎的收录情况，而查看网站日志是了解搜索引擎的蜘蛛有没有访问过网站的最好方法。下面是<a href="http://www.deepvps.com" target="_blank">deepvps</a>自己用的自动每天定时切割Nginx日志的脚本，很方便很好用，推荐给大家使用。本脚本也是参考了<a href="http://www.s135.com/" target="_blank">张宴</a>老师的文章，再次感谢张宴老师。</p>
<p>1、创建脚本/usr/local/nginx/sbin/cut_nginx_log.sh</p>
<blockquote><p>vi /usr/local/nginx/sbin/cut_nginx_log.sh</p></blockquote>
<p><span id="more-452"></span>输入以下内容：</p>
<blockquote><p>#!/bin/bash<br />
# This script run at 00:00</p>
<p># The Nginx logs path<br />
logs_path=&#8221;/home/www/logs/&#8221;</p>
<p>mkdir -p ${logs_path}$(date -d &#8220;yesterday&#8221; +&#8221;%Y&#8221;)/$(date -d &#8220;yesterday&#8221; +&#8221;%m&#8221;)/<br />
mv ${logs_path}access.log ${logs_path}$(date -d &#8220;yesterday&#8221; +&#8221;%Y&#8221;)/$(date -d &#8220;yesterday&#8221; +&#8221;%m&#8221;)/access_$(date -d &#8220;yesterday&#8221; +&#8221;%Y%m%d&#8221;).log<br />
kill -USR1 `cat /usr/local/nginx/nginx.pid`</p></blockquote>
<p>2、设置crontab，每天凌晨00:00切割nginx访问日志</p>
<blockquote><p>crontab -e</p></blockquote>
<p>输入以下内容：</p>
<blockquote><p>00 00 * * * /bin/bash  /usr/local/nginx/sbin/cut_nginx_log.sh</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/nginx-cut-the-log-scripts.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nginx 遇到 502 Bad Gateway 自动重启脚本</title>
		<link>http://www.deepvps.com/nginx-502-bad-gateway-automatically-restart-script.html</link>
		<comments>http://www.deepvps.com/nginx-502-bad-gateway-automatically-restart-script.html#comments</comments>
		<pubDate>Mon, 31 May 2010 05:25:18 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS管理维护]]></category>
		<category><![CDATA[502]]></category>
		<category><![CDATA[Bad Gateway]]></category>
		<category><![CDATA[Crontab]]></category>
		<category><![CDATA[php-fpm]]></category>
		<category><![CDATA[脚本]]></category>
		<category><![CDATA[自动重启]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=447</guid>
		<description><![CDATA[放到crontab里一分钟执行一次。url和cmd根据自己的改。
原理就是用curl获取HTTP头，发现502状态码就执行重启php-fpm的命令。

#!/usr/bin/php
&#60;!--$url = 'http://www.deepvps.com';
$cmd = '/usr/local/php/sbin/php-fpm restart';
&#160;
for&#40;$i = 0; $i &#60; 5; $i ++&#41;&#123;         $exec = &#34;curl  connect-timeout 3 -I $url 2&#62;/dev/null&#34;;
        $res = shell_exec&#40;$exec&#41;;
&#160;
        if&#40;stripos&#40;$res, '502 Bad Gateway'&#41; !== false&#41;&#123;
   [...]]]></description>
			<content:encoded><![CDATA[<p>放到crontab里一分钟执行一次。url和cmd根据自己的改。<br />
原理就是用curl获取HTTP头，发现502状态码就执行重启php-fpm的命令。</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/usr/bin/php
</span><span style="color: #339933;">&lt;!--</span><span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://www.deepvps.com'</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$cmd</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/usr/local/php/sbin/php-fpm restart'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>         <span style="color: #000088;">$exec</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;curl  connect-timeout 3 -I <span style="color: #006699; font-weight: bold;">$url</span> 2&gt;/dev/null&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #990000;">shell_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$exec</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">stripos</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$res</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'502 Bad Gateway'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!==</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                <span style="color: #990000;">shell_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cmd</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #339933;">--&gt;</span></pre></div></div>

<p><span id="more-447"></span>至于crontab，请自行Google搜索</p>
<p>转自：http://www.hostloc.com/viewthread.php?tid=19208&amp;page=1#pid235729</p>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/nginx-502-bad-gateway-automatically-restart-script.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Crontab的一些使用提示</title>
		<link>http://www.deepvps.com/some-tips-crontab.html</link>
		<comments>http://www.deepvps.com/some-tips-crontab.html#comments</comments>
		<pubDate>Thu, 20 May 2010 05:21:01 +0000</pubDate>
		<dc:creator>deepvps</dc:creator>
				<category><![CDATA[VPS管理维护]]></category>
		<category><![CDATA[Crontab]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://www.deepvps.com/?p=435</guid>
		<description><![CDATA[crontab是linux vps下面常见的定时工具。它可以隔一段时间就进行一次你预期定好的命令。
可以把你需要处理的命令写成脚本，放在bats.sh里面。
使用crontab -e 进行编辑调用定时执行。
# [分钟] [小时] [一个月中的某一天] [月份] [一周中的某一天] [命令]
30 * * * * /home/netroby/backup/autobak.sh
# */30表示每 30分钟， 如果这里写的是30,那么就是每小时的30分的时候
bats.sh里面的内容示例
#!/bin/sh
export GIT_DIR=&#8221;/home/user/backup/vhosts/.git&#8221;
/usr/bin/ssh user@www.domain.com &#8220;cd /vhosts/ &#38;&#38; ./backup.sh &#38;&#38; git commit -am &#8216;backup&#8217;&#8221;
cd /home/user/backup/vhosts/
/usr/bin/git pull origin master
变量一定要导出，少了变量，程序执行就是错的。
路径要使用绝对路径，执行的目录一定要转到绝对位置。
cron的日志在/var/log/syslog里面
vim -R /var/log/syslog即可查看 cron 日志。
crontab -l列出当前安排的定时器。crontab -e 编辑定时器，可以增加或者减少 ，crontab -r 是清除定时器。
更多资料请参考：
http://wiki.ubuntu.org.cn/CronHowto
https://help.ubuntu.com/community/CronHowto
]]></description>
			<content:encoded><![CDATA[<p>crontab是linux vps下面常见的定时工具。它可以隔一段时间就进行一次你预期定好的命令。</p>
<p>可以把你需要处理的命令写成脚本，放在bats.sh里面。</p>
<p>使用crontab -e 进行编辑调用定时执行。</p>
<blockquote><p># [分钟] [小时] [一个月中的某一天] [月份] [一周中的某一天] [命令]<br />
30 * * * * /home/netroby/backup/autobak.sh<br />
# */30表示每 30分钟， 如果这里写的是30,那么就是每小时的30分的时候</p></blockquote>
<p><span id="more-435"></span>bats.sh里面的内容示例</p>
<blockquote><p>#!/bin/sh<br />
export GIT_DIR=&#8221;/home/user/backup/vhosts/.git&#8221;<br />
/usr/bin/ssh user@www.domain.com &#8220;cd /vhosts/ &amp;&amp; ./backup.sh &amp;&amp; git commit -am &#8216;backup&#8217;&#8221;<br />
cd /home/user/backup/vhosts/<br />
/usr/bin/git pull origin master</p></blockquote>
<p>变量一定要导出，少了变量，程序执行就是错的。</p>
<p>路径要使用绝对路径，执行的目录一定要转到绝对位置。</p>
<p>cron的日志在/var/log/syslog里面</p>
<p>vim -R /var/log/syslog即可查看 cron 日志。</p>
<p>crontab -l列出当前安排的定时器。crontab -e 编辑定时器，可以增加或者减少 ，crontab -r 是清除定时器。</p>
<p>更多资料请参考：</p>
<p><a href="http://wiki.ubuntu.org.cn/CronHowto">http://wiki.ubuntu.org.cn/CronHowto</a></p>
<p><a href="https://help.ubuntu.com/community/CronHowto">https://help.ubuntu.com/community/CronHowto</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deepvps.com/some-tips-crontab.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
