Shell 脚本和 CRON 问题

发布于 2024-10-18 12:13:16 字数 1469 浏览 5 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

从﹋此江山别 2024-10-25 12:13:16

线索就在错误消息中:

/bin/sh: cannot create : nonexistent

注意它说的是“sh”。 Bourne shell 不支持 Bash 特有的某些功能。如果您使用 Bash 功能,那么您需要告诉 Bash 运行该脚本。

将文件的第一行设置为:

#!/bin/bash

或在 crontab 条目中执行以下操作:

* * * * * /bin/bash scriptname

如果没有看到 crontab 条目和脚本,则很难更具体。

The clue is in the error message:

/bin/sh: cannot create : nonexistent

Notice that it says "sh". The Bourne shell doesn't support some features that are specific to Bash. If you're using Bash features, then you need to tell Bash to run the script.

Make the first line of your file:

#!/bin/bash

or in your crontab entry do this:

* * * * * /bin/bash scriptname

Without seeing your crontab entry and your script it's hard to be any more specific.

恰似旧人归 2024-10-25 12:13:16

也许您应该在 backups.sh 中做的第一件事是插入 cd /home/user1。 crond 可能会从与您想象的不同的目录执行您的脚本,并且无论它如何执行,强制它使用相同的目录可能是一个很好的开始。

另一个可能有用的调试步骤是添加 id > /tmp/id.$$ 或类似的内容,这样您就可以准确地看到正在使用哪些用户帐户和组来运行脚本。

Perhaps the first thing you should do in your backups.sh is insert a cd /home/user1. crond may execute your script from a different directory than you think it does, and forcing it to use the same directory regardless of how it is executed could be a good first start.

Another potentially useful debugging step is to add id > /tmp/id.$$ or something like that, so you can see exactly which user account and groups are being used to run your script.

长梦不多时 2024-10-25 12:13:16

在crontab中,只需将2>$1更改为2>&1即可。我自己刚刚做了一件。谢谢丹尼斯·威廉姆森。

In crontab, just change 2>$1 to 2>&1. I've just done one myself. Thank you Dennis Williamson.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文