单独运行shell脚本与crontab运行shell脚本的区别

  crontab运行脚本存在两大问题:环境变量和路径,从而导致单独运行脚本没问题,但用crontab运行就报错。

1、环境变量

  描述问题:crontab: usage error: no arguments permitted after this option

  因为crontab不提供环境,所以需要自己在shell中加入,或者全部用绝对路径。简单的方法:控制台输入

[user@a ~]# echo $PATH
/your/path/1:/your/path/2………………

  然后在脚本中export

export PATH=/your/path/1:/your/path/2…………

2、路径

  描述问题:单独运行时能够找到文件,但crontab运行时找不到(诸如此类的问题)。

  如果你在脚本中用到了${PWD}等涉及相对路径的参数,就会出现这种问题。比如你的脚本放在/home/user/shell路径下,脚本中写的日志输出路径为${PWD}/shell.log,单独运行脚本时你可以在/home/user/shell下找到shell.log,但用crontab运行时,shell.log就会出现在/home/user目录下。可见,crontab运行shell时${PWD}中存储的是不是脚本所在路径,而是脚本执行用户的home路径。解决方法:使用绝对路径/home/user/shell/shell.log或修改为${PWD}/shell/shell.log。

 

 

转载于:https://www.cnblogs.com/rouge/p/3698666.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值