linux screen打印日志

需求:公司某后台程序是在screen下执行的,只能通过恢复到窗口进行查看并且无法查看全部信息;由于更新后台程序后需要重启后台,通过查看后台程序的执行过程来判断此次更新是否成功,现需要将后台程序的screen运行信息打印到日志,并提供给开发者调试。

实现思路:1.将screen日志输出到某文件,并给开发者开通读文件权限;

2.将日志名称加上时间,以通过日志名称就可轻易辨认后台是否重启成功;

3.每次重启后台都要将原日志删除,以便节省空间并重新生成带有时间的日志名

实现过程:

要点:1.更改screen配置文件/etc/screenrc  在最后加上一行logfile /root/screenlog/%t-20140905-163549.log

2.启动screen命令   需要加上相关参数

/usr/bin/screen -L -t aa1-dmS aa1 ./aa1

这里我一脚本的方式实现,日志文件名字会根据时间生成。

#!/bin/bash
export LANG=zh_CN.UTF-8
declare -i port
killall screen
rm -rf /root/screenlog/*.log
echo "logfile /root/screenlog/%t-`date +%Y%m%d-%H%M%S`.log" >> /opt/sjzq/screenrc_temp
\cp -rf /opt/sjzq/screenrc_temp /etc/screenrc
for i in `seq 1 6`
do
        n=`pgrep aa$i |wc -l`
        if [ $n -eq 0 ];then
                cd /fb$i
                /usr/bin/screen -L -t aa$i -dmS aa$i ./aa$i >/dev/null 2&1
        fi
done
sed -i '$d' /opt/sjzq/screenrc_temp

每次执行guard1.sh,会重启screen,我们看到会在/root/screenlog下生成以会话名称+时间组合而成的日志,这样根据时间我们可以判断日志重启,并能够查看相关日志了.

[[email protected] sjzq]# bash guard1.sh
[[email protected] sjzq]# ls /root/screenlog/
aa1-20140905-165056.log  aa2-20140905-165056.log  aa3-20140905-165056.log  aa4-20140905-165056.log  aa5-20140905-165056.log  aa6-20140905-165056.log
[[email protected] sjzq]# bash guard1.sh
[[email protected] sjzq]# ls /root/screenlog/
aa1-20140905-165127.log  aa2-20140905-165127.log  aa3-20140905-165127.log  aa4-20140905-165127.log  aa5-20140905-165127.log  aa6-20140905-165127.log

时间: 2024-12-19 13:10:21

linux screen打印日志的相关文章

Linux下别名alias设置(输入一个别名即可打印日志)

在Linux环境下,经常需要查看后台web日志,每次都要cd.很麻烦. 查看日志的时候,能否不用这么多cd呢?答案是能.方法如下: 步骤1:   vi  .profile 步骤2:在文件末尾增加别名showLog alias showLog='tail -100f  /pboss/iom/domain/iom/log.log' 保存文件.profile 步骤3:linux下,输入showLog,即可显示日志信息 总结:到此为止,大功告成.勉励自己继续积累吧 Linux下别名alias设置(输入一

linux screen技巧:记录屏幕日志

screen是Linux窗口管理器,用户可以建立多个screen会话,每个screen会话又可以建立多个window窗口,每一个窗口就像一个可操作的真实的ssh终端一样. screen详解:http://www.ibm.com/developerworks/cn/linux/l-cn-screen/ 下面介绍如何记录screen屏幕日志.     第一种方法: 启动时添加选项-L(Turn on output logging.),会在当前目录下生成screenlog.0文件. screen -L

linux服务之日志

[[email protected] ~]# rpm -qa|grep logsysklogd-1.4.1-46.el5logwatch-7.3-9.el5_6logrotate-3.7.4-12rsyslog-3.22.1-7.el5 [[email protected] ~]# rpm  -qa|grep initinitscripts-8.45.42-1.el5.centos [[email protected] ~]# rpm -qa|grep psacctpsacct-6.3.2-44

linux内核打印数据到串口控制台,printk数据不打印问题

linux内核打印数据到串口控制台问题 原文来源:http://i.cnblogs.com/EditPosts.aspx?opt=1 1.查看当前控制台的打印级别 cat /proc/sys/kernel/printk 4    4    1    7 其中第一个“4”表示内核打印函数printk的打印级别,只有级别比他高的信息才能在控制台上打印出来,既 0-3级别的信息 2.修改打印 echo "新的打印级别  4    1    7" >/proc/sys/kernel/pr

Linux学习之日志管理(二十一)

Linux学习之日志管理 目录 日志管理 日志服务 rsyslogd的新特点 启动日志服务 常见日志的作用 日志文件的一般格式 rsyslogd日志服务 /etc/rsyslog.conf配置文件 服务名称 连接符号 日志等级 日志记录位置 日志轮替 日志文件命名 logrotate配置文件 logrotate命令 日志管理 日志服务 在Centos6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件

Linux下查看日志的命令

最近线上的事故有点多,加上公司的监控系统实在是不好用,所以为了抓更多的信息,需要去线上服务器看实时日志.作为一个萌新,居然傻傻的直接用vim打开了jetty的日志文件,近乎10个G的日志文件被vim读入内存,导致服务器的内存被撑爆,系统自动开始kill进程,最后把jetty进程kill掉了,导致了线上故障. 所以有了这篇文章,主要介绍在Linux环境下,可以用来查看日志文件并且不会占用很大内存的一些命令. Introduction 一般来说在Linux下查看文件内容的命令有以下几种: vim.v

Linux中查看日志文件的正确姿势,求你别tail走天下了!

作为一个后端开发工程师,在Linux中查看查看文件内容是基本操作了.尤其是通常要分析日志文件排查问题,那么我们应该如何正确打开日志文件呢?对于笔者这种小菜鸡来说,第一反应就是 cat,tail,vi(或vim)了,是的,我曾经用过好多次vim编辑器来查看日志文件. 千万不要使用vi命令来查看大文件内容, 尤其对于那些几十G的大文件.因为vi仅仅是一个编辑器(可以理解为windows中的记事本),使用vi命令后则会把文件所有内容加载到内存中,如果内存不够大的话,则可能会导致服务器瘫痪. 为了生成测

linux系统web日志分析脚本

linux系统web日志分析这方面工具比较多,比如logwatch或awstats等使用perl语言开发,功能都非常强大.但这些软件都需要进行一些配置,很多朋友往往在技术方面没有投入太多力量,即便参照互联网上图文教程也无从下手.对于此情况我编写了一个web日志分析脚本,功能比较简单,无需配置,有需要的朋友可以再尝试一下.  脚本地址: gbk版(一般ssh客户端不用调整直接可用: wget http://jinxiang.oss-cn-hangzhou.aliyuncs.com/weblogch

使用log4j2打印Log,log4j不能打印日志信息,log4j2不能打印日志信息,log4j和logj2,idea控制台信息乱码(文末)

说来惭愧,今天就写了个"hello world",了解了一下log4j的日志. 本来是想在控制台打印个log信息,也是遇到坎坷重重,开始也没去了解log4j就来使用,log4j配置文件开始用的log4j.properties,结果控制台一直打印ERROR StatusLogger No log4j2 configuration file found.也就是Log4j2配置文件没找到的意思. 我就把log4j.properties文件名改成log4j2.properties,结果不报错了