全面详解Linux日志管理技巧


1. 使用shell向syslog日志文件写入信息

应用程序使用syslog协议发送信息给Linux系统的日志文件(位于/var/log目录). Sysklogd提供两个系统工具: 一个是系统日志记录, 另一个是内核信息捕获. 通常大多程序都使用C语言或者syslog应用程序或库来发送syslog消息.

下面介绍如何使用shell向syslog日志文件写入信息:

1). 使用Logger命令

logger命令是一个shell命令(接口). 你可以通过该接口使用syslog的系统日志模块 你还可以从命令行直接向系统日志文件写入一行信息.

比如, 记录硬盘升级后的系统重启信息:
$ logger System rebooted for hard disk upgrade

然后你可以查看/var/log/message文件:

# tail -f /var/log/message

输出为:

Jan 26 20:53:31 dell6400 logger: System rebooted for hard disk upgrade

你也可以通过脚本程序来使用logger命令. 看下面的实例:

#!/bin/bash
HDBS="db1 db2 db3 db4"
BAK="/sout/email"
[ ! -d $BAK ] && mkdir -p $BAK || :
/bin/rm $BAK/*
NOW=$(date +"%d-%m-%Y")
ATTCH="/sout/backup.$NOW.tgz"
[ -f $ATTCH ] && /bin/rm $ATTCH || :
MTO="you@yourdomain.com"
for db in $HDBS
do
FILE="$BAK/$db.$NOW-$(date +"%T").gz"
mysqldump -u admin -p'password' $db | gzip -9> $FILE
done
tar -jcvf $ATTCH $BAK
mutt -s "DB $NOW" -a $ATTCH $MTO < DBS $(date)
EOF
[ "$?" != "0" ] && logger "$0 - MySQL Backup failed" || :

如果mysql数据库备份失败, 上面最后一行代码将会写入一条信息到/var/log/message文件.

2). 其它用法

如果你需要记录/var/log/myapp.log文件中的信息, 可以使用:
$ logger -f /var/log/myapp.log

把消息发送到屏幕(标准错误), 如系统日志:
$ logger -s "Hard disk full"

你可以参考man参考页获得更多的选项信息:
man logger
man syslogd
  • 1
  • 2
  • 下一页
【内容导航】
第1页:使用shell向syslog日志文件写入信息 第2页:输出iptables日志到一个指定的文件

相关内容