Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: cron не выполняет поставленные задачи  (Прочитано 1102 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн asp2chief

  • Автор темы
  • Активист
  • *
  • Сообщений: 265
    • Просмотр профиля
Файл upjob
SHELL=/bin/sh
MAILTO=root
5 * * * * /home/usar/parse.sh

Добавляю crontab /home/usar/upjob
Выполняю команду: сrontab -l

SHELL=/bin/bash
MAILTO=root
5 * * * * /home/usar/parse.sh

Собственно сам файл parse.sh
#!/bin/sh
cd /home/cs/usar/data/ && cp advanced.txt /var/www/ && cd /var/www/ && chown root:root advanced.txt && chmod a-rwx, u+rw, og+r advanced.txt

На первый взгляд вроде все нормально, но файл не переносится..

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
Re: cron не выполняет поставленные задачи
« Ответ #1 : 28 Декабря 2013, 10:38:51 »
Обновлять файлы в вебруте так нельзя. Надо копировать во временный файл и делать mv под нужное имя, чтобы кэш FS сбросить.
И команда chmod у вас неправильная. Вы хотя бы для пробы руками ЭТО пытались запустить?
B что случилось со старым-добрым = ? Зачем так извращаться?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн asp2chief

  • Автор темы
  • Активист
  • *
  • Сообщений: 265
    • Просмотр профиля
Re: cron не выполняет поставленные задачи
« Ответ #2 : 28 Декабря 2013, 15:54:04 »
Обновлять файлы в вебруте так нельзя. Надо копировать во временный файл и делать mv под нужное имя, чтобы кэш FS сбросить.
И команда chmod у вас неправильная. Вы хотя бы для пробы руками ЭТО пытались запустить?
B что случилось со старым-добрым = ? Зачем так извращаться?

Можете поделится примером. Или хотя бы подсказать что имеется в виду под "Обновлять файлы в вебруте так нельзя"?

Пользователь решил продолжить мысль 28 Декабря 2013, 17:02:16:
Да че за бред! Крон не выполняет задачу  :'(
« Последнее редактирование: 28 Декабря 2013, 17:02:16 от asp2chief »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: cron не выполняет поставленные задачи
« Ответ #3 : 28 Декабря 2013, 17:48:14 »
Вы хотя бы для пробы руками ЭТО пытались запустить?
???

И что в логах?
Как расписание добавляли?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28512
    • Просмотр профиля
Re: cron не выполняет поставленные задачи
« Ответ #4 : 28 Декабря 2013, 18:02:53 »
Потому что задача НЕПРАВИЛЬНАЯ.
Вылетает с ошибкой и крон пишет о невозможности выполнить её.

Если писать вашу задачу так, как она у вас написана, то будет что-то типа

#!/bin/sh

SRCFILE=/home/cs/usar/data/advanced.txt
DSTDIR=/var/www
DSTFILE="$DSTDIR/advanced.txt"

TMPFILE=$( mktemp --tmpdir="$DSTDIR" )
cp "$SRCFILE" "$TMPFILE" && chown root:root "$TMPFILE" && chmod u=rw,go=r "$TMPFILE" && mv "$TMPFILE" "$DSTFILE" || { rm "$TMPFILE"; exit 1; }

Найдите десять отличий.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн asp2chief

  • Автор темы
  • Активист
  • *
  • Сообщений: 265
    • Просмотр профиля
Re: cron не выполняет поставленные задачи
« Ответ #5 : 28 Декабря 2013, 18:19:53 »
Потому что задача НЕПРАВИЛЬНАЯ.
Вылетает с ошибкой и крон пишет о невозможности выполнить её.

Если писать вашу задачу так, как она у вас написана, то будет что-то типа

#!/bin/sh

SRCFILE=/home/cs/usar/data/advanced.txt
DSTDIR=/var/www
DSTFILE="$DSTDIR/advanced.txt"

TMPFILE=$( mktemp --tmpdir="$DSTDIR" )
cp "$SRCFILE" "$TMPFILE" && chown root:root "$TMPFILE" && chmod u=rw,go=r "$TMPFILE" && mv "$TMPFILE" "$DSTFILE" || { rm "$TMPFILE"; exit 1; }

Познавательный пример. Спасибо вам огромнешее за скрипт. Возьму его за основу.

Ну а пока сам сам сделал так: nano /etc/cron
*/5 *   * * *   root    cd /home/cs/usar/data/ && ./parse.sh
И собственно сам parse.sh
cp advanced.txt /var/www/
« Последнее редактирование: 28 Декабря 2013, 18:24:25 от asp2chief »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: cron не выполняет поставленные задачи
« Ответ #6 : 28 Декабря 2013, 22:37:21 »
Править расписание cron текстовыми редакторами - верх неграмотности.
Используйте, специально предназначенный для этого, инструмент - crontab (конкретно для рдактирования с параметром -e). Этот инструмент и корректность записи проверит и скормит новое расписание подопечному.

 

Страница сгенерирована за 0.042 секунд. Запросов: 26.