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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Некорректная отработка bash-скрипта через cron  (Прочитано 1588 раз)

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

Оффлайн izobara

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
  • Every day is sysadmin day!
    • Просмотр профиля
Re: Некорректная отработка bash-скрипта через cron
« Ответ #15 : 13 Апреля 2017, 14:45:55 »
Morisson, да, я же говорю, что скрипт из крона стартует но не отрабатывает корректно
Исходя из полученного совета от ALiEN175 полез колупать скрипты весты в поисках истины
И понимаю, что ни один из скриптов весты не читает переменную $VESTA
Попробую ее объявить в своем скрипте.

Пользователь добавил сообщение 13 Апреля 2017, 14:57:08:
И понимаю, что ни один из скриптов весты не читает переменную $VESTA
Попробую ее объявить в своем скрипте.
И таки это решило проблему!

Итоговый код
(Нажмите, чтобы показать/скрыть)

Запись в кроне
(Нажмите, чтобы показать/скрыть)

Всем большое спасибо за помощь!
« Последнее редактирование: 13 Апреля 2017, 14:58:52 от izobara »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6753
  • 20% Cooler
    • Просмотр профиля
Re: Некорректная отработка bash-скрипта через cron
« Ответ #16 : 13 Апреля 2017, 15:00:04 »
и как итог: Не подавляйте вывод ошибок в скриптах  8)
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Некорректная отработка bash-скрипта через cron
« Ответ #17 : 13 Апреля 2017, 15:29:34 »
izobara,
* * * * * root /bin/bash /opt/scripts/git_autopull.sh...и вывода ошибок в логе не будет.

Правильно:
* * * * * root /usr/bin/script -a -c "/bin/bash /opt/scripts/git_autopull.sh" /var/log/testing.log
Зачем писать вывод в файл, потом читать for var in `cat файл` когда можно сразу в цикл?

#!/bin/bash
# GIT autopull v.0.0.3-alpha

VESTA=/usr/local/vesta
VESTABINDIR=/usr/local/vesta/bin
TEMPDIR=/tmp/git_update

mkdir $TEMPDIR
mkdir $TEMPDIR/domainlists
mkdir $TEMPDIR/branches

echo "Start pull..."

# Start update
$VESTABINDIR/v-list-users plain | awk '{print $1}' \
| while read user
do
# Creating domain lists for everyone user
$VESTABINDIR/v-list-web-domains $user plain | awk '{print $1}' \
| while read domain
do
cd /home/$user/web/$domain/public_html
mkdir $TEMPDIR/branches/$user
git branch | awk '{print $2}' > $TEMPDIR/branches/$user/$domain.tmp  # For debug
git pull origin $(cat $TEMPDIR/branches/$user/$domain.tmp)
chown -R $user /home/$user/web/$domain
echo "Pull done for $domain"
done
done

rm -rf $TEMPDIR
echo "Pull done"
echo "--------------------------------------------"


Оффлайн izobara

  • Автор темы
  • Новичок
  • *
  • Сообщений: 22
  • Every day is sysadmin day!
    • Просмотр профиля
Re: Некорректная отработка bash-скрипта через cron
« Ответ #18 : 13 Апреля 2017, 15:42:54 »
renzrv, логи были нужны только на этапе тестирования и отладки. В случае сбоев ничто мне не помешает их подключить обратно.
Цитировать
Зачем писать вывод в файл, потом читать for var in `cat файл` когда можно сразу в цикл?
Использовал для проверки корректности чтения списка пользователей и их доменов, поправлю. Спасибо!
« Последнее редактирование: 13 Апреля 2017, 15:45:22 от izobara »

 

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