1. 使用Shell向Syslog日志文件写入信息
应用程序使用Syslog协议发送信息给Linux系统的日志文件(位于/var/log目录)。Sysklogd提供两个系统工具: 一个是系统日志记录, 另一个是内核信息捕获。通常大多程序都使用C语言或者Syslog应用程序或库来发送Syslog消息。
下面介绍如何使用sShell向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/bashHDBS="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 $HDBSdo FILE="$BAK/$db.$NOW-$(date +"%T").gz" mysqldump -u admin -p'password' $db | gzip -9> $FILEdonetar -jcvf $ATTCH $BAK mutt -s "DB $NOW" -a $ATTCH $MTO <<EOFDBS $(date)EOF[ "$?" != "0" ] && logger "$0 - MySQL Backup failed" || : |
如果MySQL数据库备份失败, 上面最后一行代码将会写入一条信息到/var/log/message文件。
2). 其它用法
如果你需要记录/var/log/myapp.log文件中的信息, 可以使用: