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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: crontab проблемы с запуском скрипта  (Прочитано 1364 раз)

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

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
crontab проблемы с запуском скрипта
« : 23 Октября 2012, 12:55:14 »
Добрый день, есть скрипт который архивирует папку (скрипт нормально работает я проверял). В настройках крона пишу запуск скрипта
42 12 * * * /home/ded/Dropbox/213/zip.sh

Сам скрипт:
#script
cd /var/www
DATE=$(date +%d-%m-%Y)
time=$(date +%T)
zip -r -9 /home/ded/Dropbox/213/$DATE-$time-atest atest

Если отдельно выполнить команду:
/home/ded/Dropbox/213/zip.sh
все работает хорошо как надо создается архив с именем текущей даты. Когда выполняется через крон команда начинает выполнятся создаётся файл архива zisbP4Hf и больше ничего. Помогите разобраться в чем проблема?

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: crontab проблемы с запуском скрипта
« Ответ #1 : 23 Октября 2012, 13:09:57 »
какая запускать рута или пользователь?

Пользователь решил продолжить мысль 23 Октября 2012, 13:13:15:
#!/bin/bash
#script
cd /var/www
DATE=$(date +%d-%m-%Y)
time=$(date +%T)
zip -r -9 /home/ded/Dropbox/213/$DATE-$time-atest atest
chmod +x /home/ded/Dropbox/213/zip.sh42 12 * * * su www-data -c /home/ded/Dropbox/213/zip.sh
« Последнее редактирование: 23 Октября 2012, 13:13:15 от victor00000 »
Wars ~.o

Оффлайн Artif

  • Участник
  • *
  • Сообщений: 207
    • Просмотр профиля
Re: crontab проблемы с запуском скрипта
« Ответ #2 : 23 Октября 2012, 13:14:43 »
Можно журнал отправить в файл:
42 12 * * * /home/ded/Dropbox/213/zip.sh >> /tmp/zip.log 2>&1
В скрипте не указано, в какой оболчке он будет выполнятся. Ком.строка в Ubuntu это Bash. А какую шелл берёт Cron - это надо смотреть. Можно прямо указать нужный шелл:
#!/bin/bash
cd /var/www
...

Между
DATE=$(date +%d-%m-%Y)
и
DATE=$(date '+%d-%m-%Y')
может оказаться громадная разница. Может зависеть от шелл, и от переменных шелл. Второй вариант выключает возможность интерпретации знаков '+' и '%'. Строки с пробелами или спец.символами типа '+' надо брать в одинарные или двойные кавычки. Одинарные кавычки строже двойных. В одинарных $DATE так и останется $DATE, а в двойных будет развёрнуто в значение из DATE.

Одинарные кавычки - котрые справа, у кнопки Энтер - вот эти ' .

Слева, на букве ё, которые - `, они другие. Они эвивалентны взятию в скобки вот так: $() - запуск в шелл, того что в скобках.

Оффлайн Rydj

  • Автор темы
  • Участник
  • *
  • Сообщений: 158
    • Просмотр профиля
Re: crontab проблемы с запуском скрипта
« Ответ #3 : 23 Октября 2012, 14:10:27 »
исправил скрипт
#!/bin/bash
cd /var/www
в кроне сделал
42 12 * * * /home/ded/Dropbox/213/zip.sh >> /tmp/zip.log 2>&1причем интернесный факт что если >> /tmp/zip.log 2>&1 не дописывать то ничего не работает. Спасибо что помогли, буду благодарен если обьясните почему это обязательно нужно писать.

Оффлайн Vitsliputsli

  • Старожил
  • *
  • Сообщений: 1293
    • Просмотр профиля
Re: crontab проблемы с запуском скрипта
« Ответ #4 : 23 Октября 2012, 16:01:38 »
У меня на 10.04 все прекрасно работает и без перенаправления вывода. Что записано в /tmp/zip.log после выполнения скрипта?

Оффлайн Artif

  • Участник
  • *
  • Сообщений: 207
    • Просмотр профиля
Re: crontab проблемы с запуском скрипта
« Ответ #5 : 24 Октября 2012, 12:33:48 »
+1. Что в /tmp/zip.log
Для RedHat подобной системе часть информации пришла бы на имя root по локальной почте. Здесь часть дополнительной инфы могла лечь где-то в "/var/log/*". Например, /var/log/messages

 

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