免费注册 查看新帖 |

Chinaunix

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

[文本处理] 求助-expect脚本在crontab中执行异常 [复制链接]

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-04-27 23:40 |只看该作者 |倒序浏览
30可用积分
本帖最后由 bikkuri 于 2015-04-28 22:43 编辑

大家好!
我有一个问题向大家请教。
我写了一个脚本,通过expect连到一些服务器上去执行一条命令,然后对命令的输出进行处理。
这个脚本的expect子程序如下:
  1. run_sam_cmd()
  2. {
  3. samitem=$1
  4. ip=$(echo "$sam"|awk -vs=$samitem '{if($1==s)print$2}')
  5. user=$(echo "$sam"|awk -vs=$samitem '{if($1==s)print$3}')
  6. pass=$(echo "$sam"|awk -vs=$samitem '{if($1==s)print$4}')
  7. # cmd='[ $(grep -c samadmin /etc/passwd) -gt 0 ] && su - samadmin -c \"/opt/5620sam/server/nms/bin/nmsserver.bash nms_status\"'
  8. cmd='if \[ `grep -c samadmin /etc/passwd` -gt 0 \] ; then su - samadmin -c \"/opt/5620sam/server/nms/bin/nmsserver.bash nms_status\"; fi'
  9. [ -z $user ] && user="root"
  10. [ -z $pass ] && pass="password"
  11. sed -i "/$ip/d" ~/.ssh/known_hosts
  12. expect -c "
  13. set timeout 1000;
  14. log_file /var/www/html/lab/sam.log
  15. spawn /usr/bin/ssh -l $user $ip

  16. expect {
  17.        \"yes/no\" {send \"yes\r\"; exp_continue}
  18.        \"assword\" {send \"$pass\r\";}
  19.        }

  20. expect {
  21.         \"assword\" {send \"$user\r\";exp_continue}
  22.         \"#\" {send \"\r\";}
  23.         }

  24. expect \"#\"
  25. send \"date\r\"

  26. expect \"#\"
  27. send \"$cmd\r\"

  28. expect \"#\"
  29. send \"exit\r\r\"
  30. "
  31. }
复制代码
这个程序在命令行手工执行是没有问题的,可以得到正常的输出。
但是当我把它放在crontab里每个小时执行一次的时候,发现有的服务器可以正常得到命令的执行结果,但是有的服务器却得不到命令的执行结果。
检查log发现,远程服务器可以正常登录,但是在输入命令的时候,不知道为什么命令输到一半就被截断了,导致命令没有被正确执行。
以下是部分log内容:
  1. spawn ssh -l root 135.240.146.161^M
  2. The authenticity of host '135.240.146.161 (135.240.146.161)' can't be established.^M
  3. RSA key fingerprint is bb:db:aa:19:04:26:3c:98:7a:16:33:9d:f5:38:5b:27.^M
  4. Are you sure you want to continue connecting (yes/no)? yes^M
  5. Warning: Permanently added '135.240.146.161' (RSA) to the list of known hosts.^M^M
  6. root@135.240.146.161's password: ^M
  7. Last login: Mon Apr 27 22:03:27 2015 from 135.240.146.162^M^M
  8. [^[[1;31mroot^[[32m@hp7:^[[33m~^[[m]# ^M
  9. [^[[1;31mroot^[[32m@hp7:^[[33m~^[[m]# if [ `grep -c samadmin /etc/passwd` -gt 0 ]^M<~^[[m]# if [ `grep -c samadmin /etc/passwd` -gt 0 ]                          ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H; thspawn ssh -l root 135.240.146.162^M
  10. The authenticity of host '135.240.146.162 (135.240.146.162)' can't be established.^M
  11. RSA key fingerprint is 1f:73:58:91:44:db:02:7f:b2:4c:04:b7:a9:9e:fd:9e.^M
  12. Are you sure you want to continue connecting (yes/no)? yes^M
  13. Warning: Permanently added '135.240.146.162' (RSA) to the list of known hosts.^M^M
  14. root@135.240.146.162's password: ^M
  15. Last login: Mon Apr 27 22:03:29 2015 from 135.240.146.162^M^M
  16. [^[[1;31mroot^[[32m@hp8:^[[33m~^[[m]# ^M
  17. [^[[1;31mroot^[[32m@hp8:^[[33m~^[[m]# if [ `grep -c samadmin /etc/passwd` -gt 0 ]^M<~^[[m]# if [ `grep -c samadmin /etc/passwd` -gt 0 ]                          ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H; t
复制代码
大家帮我分析一下为什么会出现这种情况呢?
这一大串的^H是怎么回事啊?
为什么只在crontab里会出现这种情况,在命令行手工执行就没问题呢?
作为对比,以下是在命令行手工执行expect脚本情况下的log文件内容:
  1. spawn ssh -l root 135.240.146.161^M
  2. The authenticity of host '135.240.146.161 (135.240.146.161)' can't be established.^M
  3. RSA key fingerprint is bb:db:aa:19:04:26:3c:98:7a:16:33:9d:f5:38:5b:27.^M
  4. Are you sure you want to continue connecting (yes/no)? yes^M
  5. Warning: Permanently added '135.240.146.161' (RSA) to the list of known hosts.^M^M
  6. root@135.240.146.161's password: ^M
  7. Last login: Mon Apr 27 23:03:10 2015 from 135.240.146.162^M^M
  8. ^[]0;root@hp7:~^G^[[?1034h[^[[1;31mroot^[[32m@hp7:^[[33m~^[[m]# ^M
  9. ^[]0;root@hp7:~^G[^[[1;31mroot^[[32m@hp7:^[[33m~^[[m]# if [ `grep -c samadmin /etc/passwd` -gt 0 ] ; then su - samadmin -c "/opt/5620sam/server/nms/bin/nmsserver.bash nms_stat ^Mus" ; fi^M
  10. 5620 Main Server Information^M
  11. -- Build Information^M
  12.   -- 5620 SAM Version 12.0.R5.0 - Built on Tue Sep 23 19:06:30 EDT 2014^M
  13. -- System Information^M
  14.   -- Host/IP: 135.240.146.161^M
  15.   -- Startup time: Fri Apr 03 00:07:45 CST 2015^M
  16.   -- Current time: Mon Apr 27 23:55:07 CST 2015^M
  17.   -- Up time:      24d 23:47:21.833^M
  18. ......
  19. ^[]0;root@hp7:~^G[^[[1;31mroot^[[32m@hp7:^[[33m~^[[m]# spawn ssh -l root 135.240.146.162^M
  20. The authenticity of host '135.240.146.162 (135.240.146.162)' can't be established.^M
  21. RSA key fingerprint is 1f:73:58:91:44:db:02:7f:b2:4c:04:b7:a9:9e:fd:9e.^M
  22. Are you sure you want to continue connecting (yes/no)? yes^M
  23. Warning: Permanently added '135.240.146.162' (RSA) to the list of known hosts.^M^M
  24. root@135.240.146.162's password: ^M
  25. Last login: Mon Apr 27 23:03:12 2015 from 135.240.146.162^M^M
  26. ^[]0;root@hp8:~^G^[[?1034h[^[[1;31mroot^[[32m@hp8:^[[33m~^[[m]# ^M
  27. ^[]0;root@hp8:~^G[^[[1;31mroot^[[32m@hp8:^[[33m~^[[m]# if [ `grep -c samadmin /etc/passwd` -gt 0 ] ; then su - samadmin -c "/opt/5620sam/server/nms/bin/nmsserver.bash nms_stat ^Mus" ; fi^M
  28. su: warning: cannot change directory to /opt/5620sam/auxserver: No such file or directory^M
  29. -bash: /opt/5620sam/server/nms/bin/nmsserver.bash: No such file or directory^M
  30. ^[]0;root@hp8:~^G[^[[1;31mroot^[[32m@hp8:^[[33m~^[[m]#
复制代码
可以看到在命令行手工执行expect脚本的情况下,命令可以正常被输入,并得到命令执行的结果。
为什么会有这种差异呢?
从两个log的对比中可以看出在手工运行时,命令被完整输入;而在crontab运行时,命令被一大帮不明来历的^H君截断了。

  1. [box@ruizi:~/sam]$ grep -A2 date sam_cli.log
  2. [root@cat1:/]#date^M
  3. Tue Apr 28 12:07:59 BST 2015^M
  4. [root@cat1:/]#if [ `grep -c samadmin /etc/passwd` -gt 0 ] ; then su - samadmin -c "/opt/5620sam/server/nms/bin/nmsserver.bash nms_status"; fi^M
  5. --
  6. [root@cat2:/]#date^M
  7. Tue Apr 28 12:23:16 GMT 2015^M
  8. [root@cat2:/]#if [ `grep -c samadmin /etc/passwd` -gt 0 ] ; then su - samadmin -c "/opt/5620sam/server/nms/bin/nmsserver.bash nms_status"; fi^M
  9. --
  10. [root@cat3:/]#date^M
  11. Tue Apr 28 12:28:29 GMT 2015^M
  12. [root@cat3:/]#if [ `grep -c samadmin /etc/passwd` -gt 0 ] ; then su - samadmin -c "/opt/5620sam/server/nms/bin/nmsserver.bash nms_status"; fi^M
  13. --
  14. [root@cat4:/]#date^M
  15. Tue Apr 28 12:25:43 GMT 2015^M
  16. [root@cat4:/]#if [ `grep -c samadmin /etc/passwd` -gt 0 ] ; then su - samadmin -c "/opt/5620sam/server/nms/bin/nmsserver.bash nms_status"; fi^M
  17. --
  18. ......

  19. [box@ruizi:~/sam]$ grep -A2 date sam_crontab.log
  20. [root@cat1:/]#date^M
  21. Tue Apr 28 12:18:25 BST 2015^M
  22. [root@cat1:/]#if [ `grep -c samadmin /etc/passwd` -gt 0 ] ; then su - samadmi^M< samadmin /etc/passwd` -gt 0 ] ; then su - samadmin                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H -c "/opt/5620sam/server/^M< 0 ] ; then su - samadmin -c "/opt/5620sam/server/n                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hms/bin/nmsserver.bash nms^M<-c "/opt/5620sam/server/nms/bin/nmsserver.bash nms_                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hstatus"; fi^M
  23. --
  24. [root@cat2:/]#date^M
  25. Tue Apr 28 12:33:43 GMT 2015^M
  26. [root@cat2:/]#if [ `grep -c samadmin /etc/passwd` -gt 0 ] ; then su - samadmi^M< samadmin /etc/passwd` -gt 0 ] ; then su - samadmin                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H -c "/opt/5620sam/server/^M< 0 ] ; then su - samadmin -c "/opt/5620sam/server/n                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hms/bin/nmsserver.bash nms^M<-c "/opt/5620sam/server/nms/bin/nmsserver.bash nms_                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hstatus"; fi^M
  27. --
  28. [root@cat3:/]#date^M
  29. Tue Apr 28 12:38:55 GMT 2015^M
  30. [root@cat3:/]#if [ `grep -c samadmin /etc/passwd` -gt 0 ] ; then su - samadmi^M< samadmin /etc/passwd` -gt 0 ] ; then su - samadmin                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H -c "/opt/5620sam/server/^M< 0 ] ; then su - samadmin -c "/opt/5620sam/server/n                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hms/bin/nmsserver.bash nms^M<-c "/opt/5620sam/server/nms/bin/nmsserver.bash nms_                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hstatus"; fi^M
  31. --
  32. [root@cat4:/]#date^M
  33. Tue Apr 28 12:36:09 GMT 2015^M
  34. [root@cat4:/]#if [ `grep -c samadmin /etc/passwd` -gt 0 ] ; then su - samadmi^M< samadmin /etc/passwd` -gt 0 ] ; then su - samadmin                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H -c "/opt/5620sam/server/^M< 0 ] ; then su - samadmin -c "/opt/5620sam/server/n                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hms/bin/nmsserver.bash nms^M<-c "/opt/5620sam/server/nms/bin/nmsserver.bash nms_                         ^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^Hstatus"; fi^M
  35. --
  36. ......
复制代码
附件是crontab运行时以及手工执行时的expect的完整log,请帮我分析一下。
samlog.zip (14.79 KB, 下载次数: 31)
  1. [box@ruizi:~/sam]$ l
  2. 总用量 124
  3. -rw-r--r-- 1 box box 73413  4月 28 20:17 sam_cli.log
  4. -rw-r--r-- 1 box box 50851  4月 28 20:28 sam_crontab.log
  5. [box@ruizi:~/sam]$ wc *
  6.   1853  11148  73413 sam_cli.log
  7.   1223   7456  50851 sam_crontab.log
  8.   3076  18604 124264 总用量
  9. [box@ruizi:~/sam]$ file *
  10. sam_cli.log:     UTF-8 Unicode English text, with CRLF, CR, LF line terminators, with escape sequences
  11. sam_crontab.log: UTF-8 Unicode English text, with CRLF, CR, LF line terminators, with escape sequences, with overstriking
  12. [box@ruizi:~/sam]$
复制代码
谢谢。

最佳答案

查看完整内容

估计还是环境的问题你可以在命令行和cron分别set对比一下,看看是不是一样,特别是TERM COLUMNS等变量或者直接在expect里面加 stty -echo 就可以眼不见为净了

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2015-04-27 23:40 |只看该作者
估计还是环境的问题
你可以在命令行和cron分别set对比一下,看看是不是一样,特别是TERM COLUMNS等变量
或者直接在expect里面加 stty -echo 就可以眼不见为净了

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
3 [报告]
发表于 2015-04-28 18:08 |只看该作者
等了一天了。。。没有哪位小伙伴帮忙分析一下吗?

论坛徽章:
768
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
4 [报告]
发表于 2015-04-28 18:24 |只看该作者
不会啊,30分溜走了, 呼叫帽子哥.@Shell_HAT

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
5 [报告]
发表于 2015-04-30 15:06 |只看该作者
唉,没人回直接沉了啊。。。
哪位大神指点一下啊。。。
这个问题困扰很长时间了。。。

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
6 [报告]
发表于 2015-04-30 15:18 |只看该作者
回复 1# bikkuri


手工可以,crontab 不行,基本就是环境变量的问题。
在执行命令前,先加载用户的环境变量
. /home/username/.bash_profile

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
7 [报告]
发表于 2015-04-30 15:26 |只看该作者
本帖最后由 bikkuri 于 2015-04-30 15:29 编辑

谢谢您的指点。
我在脚本的最开始加了source /root/.bash_profile然后再让crontab执行,结果还是和原来一模一样,没有什么变化啊。
还是有大群的^H君出现,截断了要远程执行的命令,有的服务器收到截断的命令也能正常执行出结果,有的服务器就不行,所以我也不确定是^H君惹的祸。
但是为什么在crontab环境执行的时候会出现这样一群不明来历的^H呢?

回复 5# ly5066113


   

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
8 [报告]
发表于 2015-05-01 00:18 |只看该作者
谢谢您的指点。
虽然还是不明白是怎么回事,
但是按照您说的方法,
在expect中加上stty -echo以后,
要执行的命令消失了......^H君也消失了......
但是没被显示的命令执行后却正常地得到了输出结果!
我查了一下stty -echo的作用是:设置命令不被显示
为什么命令不被显示就把问题给解决了呢?
为什么在crontab里会出这样的幺蛾子呢?
百思不得其解啊......
不过大神就是大神啊,我费了那么大劲测试各种可能性,分析各种日志,也没找到解决办法,
大神随便支一招,轻描淡写地就把问题给解决了啊......膜拜啊......五体投地啊......
麻烦大神帮忙解释一下呗?

回复 2# waker


   

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
9 [报告]
发表于 2015-05-01 17:44 |只看该作者
从你上面的描述我没看出什么地方出错了,只是回显比较乱,你比较下命令行和cron里的环境变量吧,特别是TERM CLUMNS这些和显示相关的环境变量

论坛徽章:
18
辰龙
日期:2014-05-21 21:01:4115-16赛季CBA联赛之深圳
日期:2016-12-23 13:51:3815-16赛季CBA联赛之北控
日期:2016-11-28 18:26:3815-16赛季CBA联赛之佛山
日期:2016-11-03 11:18:5815-16赛季CBA联赛之辽宁
日期:2016-07-10 16:09:4115-16赛季CBA联赛之江苏
日期:2016-02-20 23:09:202015亚冠之塔什干棉农
日期:2015-08-17 19:49:492015年亚洲杯之日本
日期:2015-04-30 01:24:342015年亚洲杯之约旦
日期:2015-04-01 00:37:182015年亚洲杯之沙特阿拉伯
日期:2015-03-02 15:55:40处女座
日期:2014-05-25 10:34:0020周年集字徽章-年
日期:2023-04-23 11:17:52
10 [报告]
发表于 2015-05-02 17:40 |只看该作者
本帖最后由 bikkuri 于 2015-05-02 17:55 编辑

谢谢您的指点。
以下是命令行和crontab里的环境变量的对比:
  1. env output in crontab:
  2. SHELL=/bin/sh
  3. USER=root
  4. PATH=/usr/bin:/bin
  5. _=/usr/bin/env
  6. PWD=/root
  7. HOME=/root
  8. SHLVL=2
  9. LOGNAME=root

  10. env output in cli:
  11. HOSTNAME=hp8
  12. TERM=xterm
  13. SHELL=/bin/bash
  14. HISTSIZE=1000
  15. SSH_CLIENT=135.240.144.46 51235 22
  16. QTDIR=/usr/lib64/qt-3.3
  17. QTINC=/usr/lib64/qt-3.3/include
  18. SSH_TTY=/dev/pts/1
  19. USER=root
  20. LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:o
  21. w=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31
  22. :*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.
  23. ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:
  24. *.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=0
  25. 1;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc
  26. =01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv
  27. =01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.a
  28. xa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
  29. MAIL=/var/spool/mail/root
  30. PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/python3.4.2/bin:/root/bin:/usr/local/python3.
  31. 4.2/bin
  32. PWD=/var/www/html/lab
  33. LANG=en_US.UTF-8
  34. KDE_IS_PRELINKED=1
  35. MODULEPATH=/usr/share/Modules/modulefiles:/etc/modulefiles
  36. LOADEDMODULES=
  37. KDEDIRS=/usr
  38. TZ=Asia/Shanghai
  39. SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
  40. HISTCONTROL=ignoredups
  41. SHLVL=1
  42. HOME=/root
  43. LOGNAME=root
  44. QTLIB=/usr/lib64/qt-3.3/lib
  45. CVS_RSH=ssh
  46. SSH_CONNECTION=135.240.144.46 51235 135.240.146.162 22
  47. MODULESHOME=/usr/share/Modules
  48. LESSOPEN=|/usr/bin/lesspipe.sh %s
  49. DISPLAY=localhost:10.0
  50. HISTTIMEFORMAT=%F_%T
  51. G_BROKEN_FILENAMES=1
  52. module=() {  eval `/usr/bin/modulecmd bash $*`
  53. }
  54. _=/bin/env
  55. OLDPWD=/root/ver
复制代码
那到底是什么导致了^H君的出现呢?
是因为缺少了TERM=xterm吗?

waker 发表于 2015-05-01 17:44
从你上面的描述我没看出什么地方出错了,只是回显比较乱,你比较下命令行和cron里的环境变量吧,特别是TERM ...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP