为什么我的cronjob无法执行我的shell脚本?

用户名

我有一个crontab,每天晚上都会创建我的数据库的转储:

20 3 * * * /path/to/dailydump.sh

dailydump.sh 包含:

#!/bin/sh

DATENAME=`date +%Y%m%d`

BASENAME="/path/to/dumps/db_${DATENAME}.sql"

/usr/bin/mysqldump -hhost -uusername -ppassword databasename > ${BASENAME}

权限是:

-rwx---r-x 1 ... dailydump.sh
drwxr-xrwx 2 ... dumps

为什么我的cronjob无法正常工作?

我在没有root用户访问权限的共享服务器上。没有登录/var/log/cron/var/log/syslog没有邮件/var/mail/<user_name>/var/spool/mail/<user_name>(其实没有什么的都在/var/mail//var/spool/),[email protected]不邮寄任何错误消息,并且1 2 * * * /path/to/your/command &>/path/to/mycommand.log不保存任何日志文件。ps -ef | grep cron | grep -v grep?什么也不返回。(请参阅https://serverfault.com/a/449652

整个设置工作正常,直到我将所有文件移至新域并必须设置新的crontab。(是的,我更新了所有路径和数据库登录信息。我也对其进行了多次检查。)我在同一台计算机上使用同一托管提供程序,因此环境没有改变。

任何帮助将不胜感激。


“解决方案”

好的,这很奇怪。我的提供商的帮助中心说,如果要由cronjob执行的脚本位于受密码保护的目录中,则需要-auth=user:password -source在脚本路径之前添加因此,我添加了(使用正确的身份验证):

20 3 * * * -auth=user:password -source /path/to/dailydump.sh

结果是将错误消息通过电子邮件发送给我(如此MAILTO=工作),告诉我/bin/sh: -=: invalid option并列出了可用的选项。在帮助中心的例子其实并没有给出一个物理路径(/path/to/file),而是一个URL( http://...),所以我删除auth,并source再次拯救了crontab中,和现在的F%§#荷兰国际集团的cronjob运行!“ crontab看起来完全像以前一样,用char表示char,但是现在它可以运行了,对代码没有明显的更改。

我不知道问题出在什么地方,但是插入错误的代码并再次删除它可以解决问题。o_O似乎cronjob实际上一直在运行(因为如果没有运行,显然会引发错误),只是它什么没做!非常神秘。如果有人可以(以可重复的方式)向我解释这一点,我将提供200英镑的奖励并奖励(在必要的两天等待之后)。

另外,@ chaos给了我另一个解决方案,完全避免了shell脚本,而让cron直接转储数据库(请参阅下面对他的回答的评论):

20 3 * * * / usr / bin / mysqldump -hhost -uusername -ppassword数据库名称> / path / to / dumps / db _ $(date + \%Y \%m \%d).sql

只是不要忘记转义百分号,否则脚本会发现“意外的EOF”。

谢谢大家的帮助。我又学到了很多(尽管这里没有错)。

混乱

为了确保cron守护程序正在运行并遵守crontab,您可以做一个小测试。crontab使用以下条目编辑您的内容:

* * * * * /bin/date >>/tmp/test

一分钟后,检查文件/ tmp / test。如果没有文件,则守护程序很可能没有运行。如果是这种情况,我会与提供者的支持联系。

编辑:

要确定cron实例中的环境,您可以:

* * * * * /usr/bin/id >>/tmp/test
* * * * * /usr/bin/env >>/tmp/test

现在查看文件的内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的Shell脚本无法执行?

来自分类Dev

为什么我的脚本无法执行?

来自分类常见问题

为什么输入后我的二进制搜索脚本无法执行?

来自分类Dev

为什么输入后我的二进制搜索脚本无法执行?

来自分类Dev

为什么我的docker-entrypoint.sh无法执行?

来自分类Dev

为什么我的Swift for-in-loop无法执行/迭代?

来自分类Dev

为什么我的System.out.println无法执行?

来自分类Dev

为什么在使用DispatchQueue时我的函数无法执行?

来自分类Dev

为什么我的名为“ set”的程序无法执行?

来自分类Dev

为什么我的firefox插件无法执行Request

来自分类Dev

为什么我在Rails应用程序中的lib / assets目录中的脚本无法执行或出错?

来自分类Dev

cronjob无法执行独立运行的脚本

来自分类Dev

为什么我的php代码在ajax执行时无法执行

来自分类Dev

为什么bash脚本的最终目录cmd无法执行?

来自分类Dev

为什么我的Shell脚本无法打开终端?

来自分类Dev

为什么我无法在 shell 脚本中运行 docker 命令

来自分类Dev

为什么此CURL(shell / terminal)命令无法执行?

来自分类Dev

为什么Korn Shell无法执行ctrl-r?

来自分类Dev

计划任务无法执行我的Powershell脚本

来自分类Dev

为什么在我的Cubit LoadedState中的Dart中代码无法执行并被跳过?

来自分类Dev

为什么此点击事件处理程序无法执行我的代码?

来自分类Dev

为什么在我的Cubit LoadedState中的Dart中代码无法执行并被跳过?

来自分类Dev

为什么我无法执行获取java.lang.IllegalStateException的活动方法?

来自分类Dev

我的Google Guice方法拦截器无法执行,但是为什么呢?

来自分类Dev

为什么我的CUDA函数的HOST版本无法执行?

来自分类Dev

为什么我的第二个while循环无法执行?

来自分类Dev

我无法执行登录

来自分类Dev

我对此存储过程无法执行有什么误解?

来自分类Dev

Cygwin无法执行Shell脚本

Related 相关文章

  1. 1

    为什么我的Shell脚本无法执行?

  2. 2

    为什么我的脚本无法执行?

  3. 3

    为什么输入后我的二进制搜索脚本无法执行?

  4. 4

    为什么输入后我的二进制搜索脚本无法执行?

  5. 5

    为什么我的docker-entrypoint.sh无法执行?

  6. 6

    为什么我的Swift for-in-loop无法执行/迭代?

  7. 7

    为什么我的System.out.println无法执行?

  8. 8

    为什么在使用DispatchQueue时我的函数无法执行?

  9. 9

    为什么我的名为“ set”的程序无法执行?

  10. 10

    为什么我的firefox插件无法执行Request

  11. 11

    为什么我在Rails应用程序中的lib / assets目录中的脚本无法执行或出错?

  12. 12

    cronjob无法执行独立运行的脚本

  13. 13

    为什么我的php代码在ajax执行时无法执行

  14. 14

    为什么bash脚本的最终目录cmd无法执行?

  15. 15

    为什么我的Shell脚本无法打开终端?

  16. 16

    为什么我无法在 shell 脚本中运行 docker 命令

  17. 17

    为什么此CURL(shell / terminal)命令无法执行?

  18. 18

    为什么Korn Shell无法执行ctrl-r?

  19. 19

    计划任务无法执行我的Powershell脚本

  20. 20

    为什么在我的Cubit LoadedState中的Dart中代码无法执行并被跳过?

  21. 21

    为什么此点击事件处理程序无法执行我的代码?

  22. 22

    为什么在我的Cubit LoadedState中的Dart中代码无法执行并被跳过?

  23. 23

    为什么我无法执行获取java.lang.IllegalStateException的活动方法?

  24. 24

    我的Google Guice方法拦截器无法执行,但是为什么呢?

  25. 25

    为什么我的CUDA函数的HOST版本无法执行?

  26. 26

    为什么我的第二个while循环无法执行?

  27. 27

    我无法执行登录

  28. 28

    我对此存储过程无法执行有什么误解?

  29. 29

    Cygwin无法执行Shell脚本

热门标签

归档