Chinaunix

标题: crontab 报错救助 [打印本页]

作者: _liu8210    时间: 2006-05-18 09:40
标题: crontab 报错救助
语句如下
0 0  * * *  su - oracle /dbbackup/expyw.sh  1>/dbbackup/ywexp.log  2>&1


重定向的ywexp.log记录如下
tcsetattr: stdin: Not a typewriter
tcsetattr: stdin: Not a typewriter
之前定于每周三执行,都是正常执行的,但是将周三改为每天执行,以*匹配后,就报以上错误,
请高人指点.感谢!!
作者: fzm    时间: 2006-05-18 09:56
改为以下再看看是否可行:
0 0  * * *  su - oracle -c "/dbbackup/expyw.sh  1>/dbbackup/ywexp.log  2>&1"
作者: _liu8210    时间: 2006-05-18 10:19
谢谢建议,已修改
作者: chinadns    时间: 2006-05-18 10:59
直接写入oracle的用户的crontab·何必用root来su·
作者: _liu8210    时间: 2006-05-18 15:08
直接写入oracle的用户的crontab·何必用root来su·


------但是oracle用户没有crontab的权限啊
怎么才能让oracle用户有crontab权限
作者: wxws2002    时间: 2006-05-18 18:33
系统管理员是通过c r o n . d e n y和c r o n . a l l o w这两个文件来禁止或允许用户拥有自己的c r o n t a b文件。
作者: wxws2002    时间: 2006-05-18 18:35
或则把 /dbbackup/expyw.sh  1>/dbbackup/ywexp.log  2>&1
写到一个脚本中,然后使用CRONTAB调用
作者: _liu8210    时间: 2006-05-19 09:55
谢谢大家的回复
现在的脚本:
#ptdatabase buckup
48 9 * * * su - oracle -c"/dbbackup/exppt.sh"  1>/dbbackup/ywexp.log  2>&1
生成的错误日志:
tcsetattr: stdin: Not a typewriter
tcsetattr: stdin: Not a typewriter
也试着把/dbbackup/exppt.sh  1>/dbbackup/ywexp.log  2>&1写入另一个文件,
都不行,
感觉是su - oracle -c这一步没有执行.
作者: _liu8210    时间: 2006-05-19 10:03
经测试
在root用的命令行下执行
su - oracle -c"/dbbackup/exppt.sh"
可以正常执行
作者: fzm    时间: 2006-05-19 10:19
你确认是用crontab -e编辑的吗?
作者: _liu8210    时间: 2006-05-19 10:33
没错,用crontab -e编辑
用crontab -l查看
我怕字符全角与半角问题
又全部用英语状态书写一遍,还是不执行
作者: fjfd    时间: 2006-05-19 14:02
原帖由 _liu8210 于 2006-5-18 09:40 发表
语句如下
0 0  * * *  su - oracle /dbbackup/expyw.sh  1>/dbbackup/ywexp.log  2>&1


重定向的ywexp.log记录如下
tcsetattr: stdin: Not a typewriter
tcsetattr: stdin: Not a typewriter
之 ...


01 0  * * *  su - oracle /dbbackup/expyw.sh  1>/dbbackup/ywexp.log  2>&1
试一下
作者: _liu8210    时间: 2006-05-19 14:38
回复FJFD:
0 0  * * 3  su - oracle /dbbackup/expyw.sh  1>/dbbackup/ywexp.log  2>&1
我一星期之前用上个语句执行,正常执行
但自从改成每到执行,把3换成了*,就报在dbbackup/ywexp.log中输出
tcsetattr: stdin: Not a typewriter
tcsetattr: stdin: Not a typewriter
/dbbackup/expyw.sh根本没执行,刚才又测试了一次.
作者: _liu8210    时间: 2006-05-19 17:23
再顶一次
感觉是crontab出问题了
su - oracle /dbbackup/expyw.sh  1>/dbbackup/ywexp.log  2>&1
在命令行下都可以直接执行
作者: _liu8210    时间: 2006-05-22 13:35
顶一下
兄弟们给些建议啊
作者: RS9000    时间: 2006-05-22 13:46
真是奇怪的问题。。
你把*再改回3看看,怎么可能呢??
作者: _liu8210    时间: 2006-05-22 14:06
我现在是
5 14 * * 1 /dbbackup/exp.sh   exp.sh为root用户
/dbbackup/exp.sh如下:

su - oracle /dbbackup/exppt.sh 1>/dbbackup/ptexp.log 2>&1    exppt.sh 为oracle用户,且确信没有问题.
经刚测试,报如下错:
tcsetattr: stdin: Not a typewriter
tcsetattr: stdin: Not a typewriter
晕啊
作者: _liu8210    时间: 2006-05-24 12:34
感谢大家的回复,现在终于搞定。
原因在于shell的问题。
作者: fzm    时间: 2006-05-24 19:39
原帖由 _liu8210 于 2006-5-24 12:34 发表
感谢大家的回复,现在终于搞定。
原因在于shell的问题。
能详细点吗?
作者: _liu8210    时间: 2006-05-25 10:40
root用户与oracle用户本来使用相同的shell,可以正常备份。
但是,oracle用户被一个兄弟修改了shell,而恰恰那一天我也修改了定时任务。所以至致此
作者: wxws2002    时间: 2006-05-25 15:52
oh,还有这种问题?/dbbackup/expyw.sh  中只要制定了shell,应该不会有问题的阿
作者: yanjun2023    时间: 2006-05-28 02:49
因为他没有在?/dbbackup/expyw.sh  里加#!/bin/ksh
嘿嘿

ps:不知道各位了解securesh吗
作者: 老农    时间: 2006-05-28 14:47
在脚本前头加#!/bin/ksh是好习惯,否则经常出问题。
作者: wxws2002    时间: 2006-05-29 08:47
原帖由 yanjun2023 于 2006-5-28 02:49 发表
因为他没有在?/dbbackup/expyw.sh  里加#!/bin/ksh
嘿嘿

ps:不知道各位了解securesh吗

同意
作者: _liu8210    时间: 2006-05-30 12:13
谨受教
作者: zhangdonglin    时间: 2006-05-30 13:28
长见识了,以前没有注意到,被crontab搞的头都大了!
作者: xy-coordinate    时间: 2006-06-07 15:30
原帖由 老农 于 2006-5-28 14:47 发表
在脚本前头加#!/bin/ksh是好习惯,否则经常出问题。


靠!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2