Cron не работает скрипты

Я искал несколько причин, которые могли бы вызвать мою проблему без удачи. Кажется, проблема чрезвычайно специфическая: на моем сервере, работающем под управлением LTS 10.04, неправильно выполняются сценарии, связанные с использованием Интернета. Я пытаюсь обновить динамический DNS с моего сервера, чтобы мой домен всегда указывал на мой сервер. Я подключаюсь к своему серверу для внесения изменений, и он всегда работает.

Есть два места, где я поместил скрипт cron:

1) Добавьте crontab, используя crontab -e для текущего пользователя

2) Добавьте файл в / etc / cron .d / (тоже два разных файла)

Я убедился, что они принадлежат пользователю root и имеют биты доступа для владельца.

Исключая несколько вещей:

1) Все скрипты cron отлично работают на моем ноутбуке, что также составляет 10,04 LTS

2) Оба скрипта отлично работают при запуске из командная строка.

3) На сервере, если я каждую минуту передаю «привет» файлу, используя cron, он на самом деле работает

Более простой из двух запускаемых сценариев имеет такую ​​конфигурацию:

* * * * * root /usr/bin/wget "-q --read-timeout=0.0 --waitretry=5 --tries=10 --background http://freedns.afraid.org/dynamic/update.php?...........

Где я прячу ключ обновления и за ним следует новая строка.

Я чувствую, что это должно быть что-то специфическое для cron, в котором я пропускаю.

У меня также нет файла журнала cron в / var или / var / log

Дайте мне знать, если есть какая-то информация, которую я забыл упомянуть.

0
задан 9 May 2012 в 21:07

1 ответ

  • Действительно ли Вы знаете, что сообщения об ошибках крона / STDERR заканчиваются в системной почте? Если Вы не настроили его, можно быстро зарегистрироваться /var/mail/your_username. Это называют Unix Movemail в Thunderbird, но я полагаю, что существуют другие названия того же механизма также.
  • Используемая оболочка по умолчанию sh нет bash.
  • Действительно ли Вы знаете, что среда для задания крона совершенно отличается от Вашей интерактивной оболочки? Для тестирования этого, я создал задание крона:

* * * * * /tmp/testscript.sh

Содержание /tmp/testscript.sh :

#!/bin/bash
set

Я получил электронное письмо со следующим содержанием (заметьте a.o. вещи, что ПУТЬ очень отличается, сравните его с set от командной строки:

BASH=/bin/bash
BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=([0]="0")
BASH_SOURCE=([0]="/tmp/testscript.sh")
BASH_VERSINFO=([0]="4" [1]="2" [2]="24" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu")
BASH_VERSION='4.2.24(1)-release'
DIRSTACK=()
EUID=1000
GROUPS=()
HOME=/home/my_username
HOSTNAME=diablo
HOSTTYPE=x86_64
IFS=$' \t\n'
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LOGNAME=jhendrix
MACHTYPE=x86_64-pc-linux-gnu
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/bin:/bin
PPID=623
PS4='+ '
PWD=/home/my_username
SHELL=/bin/sh
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=1
TERM=dumb
UID=1000
_=/bin/bash
5
ответ дан 9 May 2012 в 21:07

Другие вопросы по тегам:

Похожие вопросы: