【发布时间】:2017-04-12 06:08:00
【问题描述】:
我使用命令crontab -e定期执行一个shell脚本。
但它有问题。
shell脚本位于/opt/oneinstack/oneinstack,所以我的crontab是:
0 1 * * * cd /opt/oneinstack/oneinstack;./backup.sh >> /data/back.log 2>&1 &
backup.sh 文件的权限为 755。
使用crontab -e 命令的用户是root
/data/back.log 中的消息是/bin/sh no such file or directory .就像标题一样。
手动执行backup.sh没问题。
它有什么问题?我该如何解决?
希望有人帮助我。非常感谢!
【问题讨论】:
-
为什么要更改目录 btw。您可以通过完整路径执行脚本
/opt/oneinstack/oneinstack/backup.sh -
@Ugur 我试过了,还是不行,
backup.sh加载了一些外部配置文件 -
还有一件事。尝试将
backup.sh文件顶部的#!/bin/sh更改为#!/bin/bash。当你正常运行时,/bin/sh行实际上可以被忽略,脚本是用你的 SHELL 执行的。当然要确保 /bin/sh 和 /bin/bash 存在。 -
@biocyberman,谢谢!还有#comment73786598。我大意的原因