LINUX.ORG.RU
решено ФорумAdmin

Выполнение скрипта из cron

 , ,


0

1

Есть простенький скрипт:

#!/bin/sh
cd /root
/usr/bin/svn up /root/trunk/
'cp' -rf /root/trunk/etc/squid/denied.acl /etc/squid/denied.acl
/sbin/service squid reload

При выполнении скрипта в ручную из под root все идет как надо. При вызове скрипта с помощью cron

*/30 * * * * root /root/svn_update.sh
Вижу в логах, что скрипт запускается, но не выполняет прописанные в него задачи. По косвенным признакам вижу, что апдейта локальной копии svn не происходит, рестарта squid тоже.

Где искать проблему?

★★★★

Последнее исправление: BOOBLIK (всего исправлений: 1)

Ответ на: комментарий от leonidko

Разве прямое указание «запускать от рута» в кронтабе не исключает эту проблему?

BOOBLIK ★★★★
() автор топика

что означает запись — 'cp'?
Не корректнее ли будет :

/bin/cp -rf /root/trunk/etc/squid/denied.acl /etc/squid/denied.acl 

Dob
()
Ответ на: комментарий от Dob

" --строгое окавычивание...в данном контексте не понятно

Dob
()
Последнее исправление: Dob (всего исправлений: 2)
Ответ на: комментарий от Dob

что означает запись — 'cp'?

Указывает на выполнение именно cp, а не алиаса

alias cp='cp -i'
прописанного в bashrc. И ваш и мой вариант суть одно и то же. Выполнение из под крона стопорится еще на этапе svn up, так как скрипт настроенный на выполнение ежеминутно(для тестов) должен поддерживать постоянно актуальную версию локального репозитария, но изменив что-либо в svn и покурив полчасика я вижу процесс апдейта при ручном выполнении скрипта:
[root@*** ~]# ./svn_update.sh
U    trunk/etc/squid/denied.acl
Updated to revision 21.

А должен увидеть:

[root@*** ~]# ./svn_update.sh
At revision 21.

BOOBLIK ★★★★
() автор топика

Письмо с выхлопом скрипта получил? Его и смотри. Если не получил, то добавь в начале

#!/bin/sh
exec > /tmp/svn_cron.log
exec 2> /tmp/svn_cron.err

и рассматривай содержимое этих файлов.

anonymous
()
Ответ на: комментарий от anonymous

Письмо с выхлопом скрипта получил?

Не подумал о рутовой почте, спасибо за наводку. Причина вроде бы нашлась:

Authentication realm: <http://***.local:80> ***
Password for 'root': Authentication realm: <http://***.local:80> ***
Username: svn: OPTIONS of 'http://***.local/svn/trunk': authorization failed: Could not authenticate to server: rejected Basic challenge (http://***.local)
Хотя я точно помню, что при первом чекауте из svn я указывал опцию сохранения логина/пароля(при выполнении вручную они тоже не спрашиваются).

Спасибо.

BOOBLIK ★★★★
() автор топика
Ответ на: комментарий от BOOBLIK

svn аунтефикация не работает в кроне. Такие дела. Пиши костыли.

greek_31 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.