Python论坛  - 讨论区

标题:[python-chinese] awk工具的问题呀。是有点离题了

2008年01月09日 星期三 11:23

jessinio liang jessinio在gmail.com
星期三 一月 9 11:23:18 HKT 2008

脚本代码:
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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月09日 星期三 11:38

Jiahua Huang jhuangjiahua在gmail.com
星期三 一月 9 11:38:24 HKT 2008

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
>
>
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月09日 星期三 11:48

jessinio liang jessinio在gmail.com
星期三 一月 9 11:48:10 HKT 2008

不是这个问题!加了也是一样呢

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月09日 星期三 11:51

Jiahua Huang jhuangjiahua在gmail.com
星期三 一月 9 11:51:23 HKT 2008

别滥用感叹号,你怎么加的?
你怎么确定不是?

On Jan 9, 2008 11:48 AM, jessinio liang <jessinio at gmail.com> wrote:
> 不是这个问题!加了也是一样呢

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月09日 星期三 11:56

jessinio liang jessinio在gmail.com
星期三 一月 9 11:56:46 HKT 2008

  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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月09日 星期三 12:13

shhgs shhgs.efhilt在gmail.com
星期三 一月 9 12:13:07 HKT 2008

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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月09日 星期三 12:25

Jiahua Huang jhuangjiahua在gmail.com
星期三 一月 9 12:25:29 HKT 2008

你不还漏了 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
>
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月09日 星期三 13:08

jessinio liang jessinio在gmail.com
星期三 一月 9 13:08:54 HKT 2008

不是路径的问题吧。我的gmail都能收到sendmail命令的信息。

路径问题就不是这样的了

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月09日 星期三 13:49

憨狗 hackgou在gmail.com
星期三 一月 9 13:49:15 HKT 2008

慢点来调试,一步一步的排除,这个里面一个用了三个管道,
把他们拆开一步一步来执行,并且把每一步的结果记录下来就
可以找到问题了


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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月09日 星期三 17:34

wu jiyong jiyong.wu在gmail.com
星期三 一月 9 17:34:35 HKT 2008

把你的 /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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月09日 星期三 17:45

jessinio liang jessinio在gmail.com
星期三 一月 9 17:45:57 HKT 2008

问题所在:ps命令的问题。

把代码中的ps命令换在ls命令就OK了

为什么daemon形式调用ps命令会得不到ps的信息的呢??



-- 
身体是革命的本钱!!
blog:http://blog.oldpai.cn

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月10日 星期四 03:12

shhgs shhgs.efhilt在gmail.com
星期四 一月 10 03:12:09 HKT 2008

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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月10日 星期四 08:57

Jiahua Huang jhuangjiahua在gmail.com
星期四 一月 10 08:57:12 HKT 2008

你什么系统?
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的信息的呢??
>
>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月10日 星期四 11:43

jessinio liang jessinio在gmail.com
星期四 一月 10 11:43:42 HKT 2008

BSD系统

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月19日 星期六 14:17

Wei Jiang jiejisheng在gmail.com
星期六 一月 19 14:17:23 HKT 2008

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

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2008年01月31日 星期四 20:05

jessinio liang jessinio在gmail.com
星期四 一月 31 20:05:21 HKT 2008

受 shhgs 的指点,使用ps的w参数,完美解决

头尾13天时间



-- 
身体是革命的本钱!!
blog:http://blog.oldpai.cn

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号