2012年7月 的存档

nginx日志分割

2012年7月10日 3 条评论

nginx日志本身不能通过配置来进行分割,如果要进行分割,需要通过写一个简单的脚本来实现这个功能。以前我一直都是用cp命令来做的,例如:

#/bin/bash
nginxLog="/usr/local/nginx/logs/access.log"
logBakFile="/usr/local/nginx/logs/"$(date "+%F")/"bak_"$(date "+%H-%M-%S")".log"

if [ ! -d ${logBakFile%/*} ]
then
    mkdir -p ${logBakFile%/*}
fi

cp $nginxLog $logBakFile 2>&1 >/dev/null
cat /dev/null > $nginxLog

原理很简单,就是通过cp命令拷贝一份当前的日志,拷贝完后清空当前日志。当然,如果nginx的并发量很大,可能会造成日志丢失情况。

今天无意中看到另外一种分割日志的方法,主要是通过mv命令来实现,我感觉可能比我以前的实现要好一些,特此记录一下。上述脚本可以修改为:

#/bin/bash
nginxLog="/usr/local/nginx/logs/access.log"
logBakFile="/usr/local/nginx/logs/"$(date "+%F")/"bak_"$(date "+%H-%M-%S")".log"

if [ ! -d ${logBakFile%/*} ]
then
    mkdir -p ${logBakFile%/*}
fi

mv $nginxLog $logBakFile 2>&1 >/dev/null
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

先用mv命令把日志备份,然后使用kill -USR1 让nginx 重新打开日志文件。虽然这样也可能丢失日志,但mv命令执行肯定要cp快,所以相当来说要安全一些。

可以把上述脚本加入到crontab中,这样就可以实现按天、按小时等一些时间规则来进行日志分割

分类: Linux, nginx 标签: ,

Mac os x F4 键失效

2012年7月3日 1 条评论

mac os loin 中可以通过快捷键F4快速启动Launchpad,最近不知何故失效了,解决方法是:打开“使用工具”中的“终端”程序,执行如下命令:

rm ~/Library/Preferences/com.apple.symbolichotkeys.plist

然后注销电脑、重新登陆,问题应该就解决了。需要注意的是这样一来自己曾经定义的快捷键可能就会失效,需要重新去定义了。

分类: 其它 标签:

无觅相关文章插件,快速提升流量