shell-logger的使用

  • linux命令之logger

  • logger 用于往系统中写入日志,他提供一个shell命令接口到syslog系统模块

    logger 语法
    logger [options] [messages]

    **options (选项):**
        -d, --udp  
            使用数据报(UDP)而不是使用默认的流连接(TCP)
        -i, --id   
            逐行记录每一次logger的进程ID
        -f, --file file_name
            记录特定的文件
        -h, --help 
            显示帮助文本并退出
        -n, --server 
            写入指定的远程syslog服务器,使用UDP代替内装式syslog的例程
        -P, --port port_num
            使用指定的UDP端口。默认的端口号是514
        -p, --priority priority_level
            指定输入消息的优先级,优先级可以是数字或者指定为 " facility.level" 的格式。比如:" -p local3.info " local3 这个设备的消息级别为 info。默认级别是 "user.notice"
        -s, --stderr
            输出标准错误到系统日志。
        -t, --tag tag
            指定标记记录
        -u, --socket socket
            写入指定的socket,而不是到内置系统日志例程。
        -V, --version
            现实版本信息并退出
    
    **messages:**写入log文件的内容消息,可以与-f配合使用。
    
    logger 以0退出表示成功,大于0表示失败。

    日志级别

    facility:
        auth:             用户授权
        authpriv:         授权和安全
        cron:             计划任务
        daemon:           系统守护进程
        kern:             与内核有关的信息
        lpr                与打印服务有关的信息
        mail               与电子邮件有关的信息
        news               来自新闻服务器的信息
        syslog             由syslog生成的信息
        user               用户的程序生成的信息,默认
        uucp               由uucp生成的信息
        local0~7           用来定义本地策略
    
    level:
        alert          需要立即采取动作
        crit           临界状态
        debug          调试
        emerg          系统不可用
        err            错误状态
        error          错误状态
        info           正常消息
        notice         正常但是要注意

    示例:

    $ logger System Rebooted  #往系统日志例程中写入 “System Rebooted”  可在/var/log/syslog中查看

    写入到指定的log文件中示例:

    $ vi /etc/rsyslog.conf    #我的系统是ubuntu1204,在最后一行加入   local3.* /var/log/my_test.log   意思是来自local3的所有消息都记录到 /var/log/my_test.log 中
    
    $ service rsyslog restart  #重启rsyslog服务
    
    $ logger -i -t "my_test" -p local3.notice "test_info"   
    $ cat /var/log/my_test.log  
    May  5 21:27:37 gino-virtual-machine my_test[3651]: test_info



下面来实践操作演示:

  1 #########################################################################   
  2 # File Name: checkfs.sh
  3 # Author: dty
  4 # mail: 576786031@qq.com
  5 # Created Time: Fri 07 Aug 2015 05:40:39 PM CST
  6 #########################################################################
  7 #!/bin/bash
  8 logger -t checks -p user.info "starting checkfs"              //-t指定标记记录。  -p 指定了日志级别info正常  
  9 df | cut -c52- |grep -v "Use%" |while read usage filesystem   
 10 do
 11     if [ "${usage%\%}" -gt "85" ];then
 12         logger -t checkfs -s -p user.warn "filesystem $filesystem is at $usa    ge"  //-s 输出标准错误。warn级别 
 13     fi
 14 done



日志情况如下

Aug  7 18:18:55 server7 checks: starting checkfs
Aug  7 18:18:59 server7 checks: starting checkfs
Aug  7 18:19:00 server7 checks: starting checkfs

脚本我手动运行三次什么都没有



[root@server7 ~]#  df | cut -c58-
Use% Mounted on
 25% /
  0% /dev/shm
  8% /boot
因为最大才25%


现在我们把useage 的界限值更改  1 #########################################################################
  2 # File Name: checkfs.sh
  3 # Author: dty
  4 # mail: 576786031@qq.com
  5 # Created Time: Fri 07 Aug 2015 05:40:39 PM CST
  6 #########################################################################
  7 #!/bin/bash
  8 logger -t checks -p user.info "starting checkfs"
  9 df | cut -c52- |grep -v "Use%" |while read usage filesystem
 10 do
 11     if [ "${usage%\%}" -gt "15" ];then                                      
 12         logger -t checkfs -s -p user.warn "filesystem $filesystem is at $usage"
 13     fi
 14 done
此时再次运行

Aug  7 18:16:18 server7 checks: starting checkfs
Aug  7 18:16:18 server7 checkfs: filesystem / is at 25%
只显示这一条

ok

我们的用户可以是普通用户

都不能去读日志的用户 ,依然可以做到,这就是问题所所在...




















转载于:https://my.oschina.net/loveleaf/blog/489327

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值