solaris下执行脚本时cron日志中提示bad user oracle
在美国的server上用root执行脚本一切正常,但想换成用oracle用户来执行,这样一来系统管理员就更方便使用sqlplus将我收集的系统信息的txt文件中的 记录读取出来,放入到数据库中!
su - oracle
为oracle用户添加cron job , crontab -e, 发现不行, 不能编译文件。到网上google了一下, 原来是没有默认的编辑器的缘故,
于是
EDITOR=vi
export EDITOR
crontab -e 后, 添加上就可以了。
但到了时间, 却发现没有正常运行, vi /var/cron/log 去查看cron的日志信息, 发现bad user oracle,为什么会有这样的提示哪, 难道是cron.deny中包含oracle用户的缘故,去查看/etc/cron.d/cron.deny,发现该文件中没有oracle用户, 于是grep oracle /etc/shadow 发现它的秘密中有LK的标记, 显然已经被锁定了。 这种有可能是仅仅添加了oracle用户, 而没有为它设置密码, 还有一种可能是通过root锁定了oracle用户。
bash-3.00# useradd -m -d /export/home/oracle -s /usr/bin/sh -c "this is oarcle" oracle
64 blocks bash-3.00# grep oracle /etc/shadow oracle:*LK*::::::: ##尽管这里有LK的标记, 但是我还是可以su - oracle bash-3.00# su - oracle $ ##表示进入了oracl额用户
用上面的过程可以清楚的描述,
解决方法:以下都是用root用户执行的! 先对oracle用户解锁: passwd -u oracle
如果还不行,
则passwd oracle 修改oracle的密码即可!
还有注意到一点是: linux中cron和solaris中的cron时间书写方式不一样, linux中更加方便: 例如: 每天0,2,4,6,8,10,12,14,16,18,20,22点0分运行那个脚本: 在linux中写法: 0 */2 * * * /home/mydir/info.sh solars中按照上面的写法是不对的, 它不识别*/2. 正确写法应为:
0 0,2,4,6,8,10,12,14,16,18,20,22 * * * /home/mydir/info.sh 呵呵, 个人感觉solaris下笨了点!没有linux方便!
|
阅读(1500) | 评论(0) | 转发(0) |