2008年01月09日 星期三 11:23
脚本代码:
cat /home/jessinio/TracStat.sh
#!/bin/sh
ps aux | awk '{
cmd = "";
do{
split($0,fields);
if(fields[12] == "/usr/local/bin/tracd"){
for(i=11;i<=NF;i++){
cmd = cmd" "fields[i];
}
cmd = cmd "\n";
}
}while(getline == 1)
print cmd;
exit;
}' | mail -s "trac stat(awk)" -F jessinio在gmail.com
crontab -e信息:
*/1 * * * * /home/jessinio/TracStat.sh
问题:
为什么手动执行程序没有问题!!!
但是crontab执行程序时,邮件是空的!确定一点:awk接收的信息为空!!!
why ???
帮助一下
3Q!
--
身体是革命的本钱!!
blog:http://blog.oldpai.cn
2008年01月09日 星期三 11:38
cron 里边就没有环境变量,没有 PATH , 你需要使用全路径如 /bin/ps /bin/bin/awk 或者在脚本开头设 PATH 等 这也是为什么上次我说 #!/bin/python 比 #!/bin/env python 好的原因, 不是所有情况都有环境变量的, btw: 请不要滥用感叹号 On Jan 9, 2008 11:23 AM, jessinio liang <jessinio at gmail.com> wrote: > 脚本代码: > cat /home/jessinio/TracStat.sh > #!/bin/sh > ps aux | awk '{ > cmd = ""; > do{ > split($0,fields); > if(fields[12] == "/usr/local/bin/tracd"){ > for(i=11;i<=NF;i++){ > cmd = cmd" "fields[i]; > } > cmd = cmd "\n"; > } > }while(getline == 1) > print cmd; > exit; > }' | mail -s "trac stat(awk)" -F jessinio at gmail.com > > crontab -e信息: > */1 * * * * /home/jessinio/TracStat.sh > > >
2008年01月09日 星期三 11:48
不是这个问题!加了也是一样呢
2008年01月09日 星期三 11:51
别滥用感叹号,你怎么加的? 你怎么确定不是? On Jan 9, 2008 11:48 AM, jessinio liang <jessinio at gmail.com> wrote: > 不是这个问题!加了也是一样呢
2008年01月09日 星期三 11:56
1 #!/bin/sh
2 /bin/ps aux | /usr/bin/awk '{
3 cmd = "";
4 do{
5 split($0,fields);
6 if(fields[12] == "/usr/local/bin/tracd"){
7 for(i=11;i<=NF;i++){
8 cmd = cmd" "fields[i];
9 }
10 cmd = cmd "\n";
11 }
12 }while(getline == 1)
13 print cmd > "/dev/stdout";
14 exit;
15 }' | mail -s "trac stat(awk)" -F jessinio在gmail.com
--
身体是革命的本钱!!
blog:http://blog.oldpai.cn
2008年01月09日 星期三 12:13
ENVIRONMENT
Mail utilizes the HOME, USER, SHELL, DEAD, PAGER, LISTER, EDITOR,
VISUAL and MBOX environment variables.
在shell下面查查这些环境变量的值,如果不是空的,就加到cron的环境变量里面。
On Jan 8, 2008 10:56 PM, jessinio liang <jessinio在gmail.com> wrote:
> 1 #!/bin/sh
> 2 /bin/ps aux | /usr/bin/awk '{
> 3 cmd = "";
> 4 do{
> 5 split($0,fields);
> 6 if(fields[12] == "/usr/local/bin/tracd"){
> 7 for(i=11;i<=NF;i++){
> 8 cmd = cmd" "fields[i];
> 9 }
> 10 cmd = cmd "\n";
> 11 }
> 12 }while(getline == 1)
> 13 print cmd > "/dev/stdout";
> 14 exit;
> 15 }' | mail -s "trac stat(awk)" -F jessinio在gmail.com
>
>
> --
> 身体是革命的本钱!!
> blog:http://blog.oldpai.cn
> _______________________________________________
>
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
2008年01月09日 星期三 12:25
你不还漏了 mail 的全路径么, 你要是想看 mail 前面的又没执行, 就换成 > /tmp/log 像你前边推测的也错在这 On Jan 9, 2008 11:56 AM, jessinio liang <jessinio at gmail.com> wrote: > 1 #!/bin/sh > 2 /bin/ps aux | /usr/bin/awk '{ > 3 cmd = ""; > 4 do{ > 5 split($0,fields); > 6 if(fields[12] == "/usr/local/bin/tracd"){ > 7 for(i=11;i<=NF;i++){ > 8 cmd = cmd" "fields[i]; > 9 } > 10 cmd = cmd "\n"; > 11 } > 12 }while(getline == 1) > 13 print cmd > "/dev/stdout"; > 14 exit; > 15 }' | mail -s "trac stat(awk)" -F jessinio at gmail.com > >
2008年01月09日 星期三 13:08
不是路径的问题吧。我的gmail都能收到sendmail命令的信息。 路径问题就不是这样的了
2008年01月09日 星期三 13:49
慢点来调试,一步一步的排除,这个里面一个用了三个管道, 把他们拆开一步一步来执行,并且把每一步的结果记录下来就 可以找到问题了 On Jan 9, 2008 11:23 AM, jessinio liang <jessinio at gmail.com> wrote: > 脚本代码: > cat /home/jessinio/TracStat.sh > #!/bin/sh > ps aux | awk '{ > cmd = ""; > do{ > split($0,fields); > if(fields[12] == "/usr/local/bin/tracd"){ > for(i=11;i<=NF;i++){ > cmd = cmd" "fields[i]; > } > cmd = cmd "\n"; > } > }while(getline == 1) > print cmd; > exit; > }' | mail -s "trac stat(awk)" -F jessinio at gmail.com > > crontab -e信息: > */1 * * * * /home/jessinio/TracStat.sh > > > > 问题: > > 为什么手动执行程序没有问题!!! > > 但是crontab执行程序时,邮件是空的!确定一点:awk接收的信息为空!!! > > why ??? > > 帮助一下 > > 3Q! > > > > > -- > 身体是革命的本钱!! > blog:http://blog.oldpai.cn > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese -- 关注LAMP平台、安全、及web开发的个人blog: http://hackgou.itbbq.com PGP KeyID: hackgou#Gmail.com PGP KeyServ: subkeys.pgp.net
2008年01月09日 星期三 17:34
把你的 /home/jessinio/TracStat.sh
改成这样试试:
ps aux |awk -F '/usr/local/bin/tracd' 'NF>1{print substr($0,length($1))}' | mail -s "trac stat(awk)" -F jessinio at gmail.com
On 0, jessinio liang <jessinio at gmail.com> wrote:
> 脚本代码:
> cat /home/jessinio/TracStat.sh
> #!/bin/sh
> ps aux | awk '{
> cmd = "";
> do{
> split($0,fields);
> if(fields[12] == "/usr/local/bin/tracd"){
> for(i=11;i<=NF;i++){
> cmd = cmd" "fields[i];
> }
> cmd = cmd "\n";
> }
> }while(getline == 1)
> print cmd;
> exit;
> }' | mail -s "trac stat(awk)" -F jessinio at gmail.com
>
> crontab -e信息:
> */1 * * * * /home/jessinio/TracStat.sh
>
>
>
> 问题:
>
> 为什么手动执行程序没有问题!!!
>
> 但是crontab执行程序时,邮件是空的!确定一点:awk接收的信息为空!!!
>
> why ???
>
> 帮助一下
>
> 3Q!
>
>
>
>
> --
> 身体是革命的本钱!!
> blog:http://blog.oldpai.cn
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
2008年01月09日 星期三 17:45
问题所在:ps命令的问题。 把代码中的ps命令换在ls命令就OK了 为什么daemon形式调用ps命令会得不到ps的信息的呢?? -- 身体是革命的本钱!! blog:http://blog.oldpai.cn
2008年01月10日 星期四 03:12
ps rely on Environments heavily. man ps ---------------------------------- ENVIRONMENT VARIABLES The following environment variables could affect ps: COLUMNS Override default display width. LINES Override default display height. PS_PERSONALITY Set to one of posix, old, linux, bsd, sun, digital... (see section PERSONALITY below). CMD_ENV Set to one of posix, old, linux, bsd, sun, digital... (see section PERSONALITY below). I_WANT_A_BROKEN_PS Force obsolete command line interpretation. LC_TIME Date format. PS_COLORS Not currently supported. PS_FORMAT Default output format override. PS_SYSMAP Default namelist (System.map) location. PS_SYSTEM_MAP Default namelist (System.map) location. POSIXLY_CORRECT Don't find excuses to ignore bad "features". POSIX2 When set to "on", acts as POSIXLY_CORRECT. UNIX95 Don't find excuses to ignore bad "features". _XPG Cancel CMD_ENV=irix non-standard behavior. In general, it is a bad idea to set these variables. The one exception is CMD_ENV or PS_PERSONALITY, which could be set to Linux for normal systems. Without that setting, ps follows the useless and bad parts of the Unix98 standard. ---------------------------------- On Jan 9, 2008 4:45 AM, jessinio liang <jessinio在gmail.com> wrote: > 问题所在:ps命令的问题。 > > 把代码中的ps命令换在ls命令就OK了 > > 为什么daemon形式调用ps命令会得不到ps的信息的呢?? > > > > > -- > 身体是革命的本钱!! > blog:http://blog.oldpai.cn > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese
2008年01月10日 星期四 08:57
你什么系统? Linux 下 gnu ps 在 env -i 下没有问题的, 确认下你的 ps 到底有没有执行, 插入个 ps aux >> /tmp/ps.log 看看吧 On Jan 9, 2008 5:45 PM, jessinio liang <jessinio at gmail.com> wrote: > 问题所在:ps命令的问题。 > > 把代码中的ps命令换在ls命令就OK了 > > 为什么daemon形式调用ps命令会得不到ps的信息的呢?? > >
2008年01月10日 星期四 11:43
BSD系统
2008年01月19日 星期六 14:17
check the mail from system and restart crond. 2008/1/9 jessinio liang <jessinio在gmail.com>: > 脚本代码: > cat /home/jessinio/TracStat.sh > #!/bin/sh > ps aux | awk '{ > cmd = ""; > do{ > split($0,fields); > if(fields[12] == "/usr/local/bin/tracd"){ > for(i=11;i<=NF;i++){ > cmd = cmd" "fields[i]; > } > cmd = cmd "\n"; > } > }while(getline == 1) > print cmd; > exit; > }' | mail -s "trac stat(awk)" -F jessinio在gmail.com > > crontab -e信息: > */1 * * * * /home/jessinio/TracStat.sh > > > > 问题: > > 为什么手动执行程序没有问题!!! > > 但是crontab执行程序时,邮件是空的!确定一点:awk接收的信息为空!!! > > why ??? > > 帮助一下 > > 3Q! > > > > > -- > 身体是革命的本钱!! > blog:http://blog.oldpai.cn > _______________________________________________ > python-chinese > Post: send python-chinese在lists.python.cn > Subscribe: send subscribe to python-chinese-request在lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese
2008年01月31日 星期四 20:05
受 shhgs 的指点,使用ps的w参数,完美解决 头尾13天时间 -- 身体是革命的本钱!! blog:http://blog.oldpai.cn
Zeuux © 2025
京ICP备05028076号