免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8493 | 回复: 9
打印 上一主题 下一主题

shell脚本里的后台运行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-11 15:35 |只看该作者 |倒序浏览
后台 tail -f error.log ,命令行模式可以直接运行 tail -f 20100811_error.log &

因为日期在不断变化,所以想用shell脚本加到crontab里实现,可是运行了脚本之后发现 tail 不是后台运行的,错误还是输出到了屏幕上,下面是代码:

#!/bin/bash

pids=`pidof tail`       #先得到所有tail进程号,赋给数组pids

#echo ${pids[@]}

if [[ -n $pids ]]    #如果数组pids不为空,则then
then
        for((i=0;i<=${#pids};i++))    #用一个for循环来杀死所有tail进程
        do
                kill ${pids[$i]} 2> /dev/null
        done

        tail -f /data/logs/apache/`date +%Y%m%d`_error.log | /usr/bin/logger -t http -p local4.info &

fi

论坛徽章:
0
2 [报告]
发表于 2010-08-11 15:43 |只看该作者
没看明白。。。

论坛徽章:
0
3 [报告]
发表于 2010-08-11 15:45 |只看该作者
if [[ -n $pids ]]    #如果数组pids不为空,则then
then
        for((i=0;i<=${#pids};i++))    #用一个for循环来杀死所有tail进程
        do
                kill ${pids[$i]} 2> /dev/null
        done

        tail -f /data/logs/apache/`date +%Y%m%d`_error.log &

fi

for循环杀死 tail 进程后,执行tail -f /data/logs/apache/`date +%Y%m%d`_error.log &

论坛徽章:
0
4 [报告]
发表于 2010-08-11 15:49 |只看该作者
不知道你为啥一定要tail -f

要实时吗?

那为啥要放crontab里呢?

论坛徽章:
0
5 [报告]
发表于 2010-08-11 16:00 |只看该作者
你只是程序后台运行,输出还是会出现在console上的.

论坛徽章:
0
6 [报告]
发表于 2010-08-11 16:01 |只看该作者
1 & 2还是会正常输出,真不想看到的话就用> 或>>吧

论坛徽章:
0
7 [报告]
发表于 2010-08-11 16:08 |只看该作者
公司里有一台syslog-ng服务器,用于收集client的错误日志,像http,mysql日志,client都要用
tail -f /data/mysql/20100811_mysql.log| /usr/bin/logger -t mysql -p local4.info &
这样日志才会往syslog-ng服务器里写,而日志的文件名是用日期来创建的,比如今天的是20100811_error.log,明天的就会是20100812_error.log ,所以要加到crontab里

论坛徽章:
0
8 [报告]
发表于 2010-08-11 21:39 |只看该作者
不知是否符合LZ要求:
我一般在script开头加上
exec 1>>$date.log
exec 2>>$date_error.log
输出全部写入指定输出。脚本结束后 1 2 自动会恢复!

论坛徽章:
0
9 [报告]
发表于 2010-08-11 22:22 |只看该作者
这样? nohup tail -f 20100811_error.log &

论坛徽章:
0
10 [报告]
发表于 2010-08-11 22:58 |只看该作者
不知是否符合LZ要求:
我一般在script开头加上
exec 1>>$date.log
exec 2>>$date_error.log
输出全部写 ...
bchbch 发表于 2010-08-11 21:39



    这个应该行
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP