Introduction
syslog is the protocol as well as application to send message to Linux system logfile located at /var/log directory. Sysklogd provides two system utilities which provide support for system logging and kernel message trapping. Usually most program and apps use C or syslog application / library sending syslog messages. But how do you send message from a shell prompt or shell script?
logger command
Use logger command which is a shell command interface to the syslog system log module. It makes or writes one line entries in the system log file from the command line. Log message 'System rebooted for hard disk upgrade':
You can use logger command from a shell script. Consider following example:
- #!/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" || :
Other usage
To log a message contained in the /var/log/myapp.log file, use:
Log the message to standard error (screen), as well as the system log:
Maker your log with tag:
Refer to the man page for more options:
Supplement
* Tsung's Blog - Linux 如何將資料寫到 Syslog
* 鳥哥 Linux 基礎文件 - 第十八章、認識與分析登錄檔
沒有留言:
張貼留言