SVN - обновление не работает для новых проверок в скрипте cron.daily - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть несколько проверок (всего 11) на сервере NAS, у меня есть скрипт cron.daily для обновления проверок (из хранилищ на другом сервере).Я установил это недавно, но для последних трех проверок, которые я установил, команда update не возвращает никаких выходных данных при ежедневном запуске сценария.

Я зафиксировал вывод stderr из одного из сбойных обновлений, икод возврата был 1, что я считаю стандартным ответом «что-то не так» в скрипте.Что я не понимаю, так это то, что если я войду в систему как пользователь root, скопирую команду run-parts из crontab и запусту ее, тогда ВСЕ обновления будут работать, как и ожидалось?

Сценарий отправит мне электронное письмо с указанием stdout каждогоОбновить.Ниже показан фрагмент, который показывает, что обновление «SVN-Documents» не работает (без вывода), но другие работают.

Updating 'SVN-COAA':
At revision 2558.

Updating 'SVN-Credentials':
At revision 3.

Updating 'SVN-Development':
At revision 2573.

Updating 'SVN-Documents':

Updating 'SVN-Downloads':
At revision 167.

Я создал извлечения, вошедшие в систему как «root», используя:

svn checkout svn://192.168.1.19/Documents SVN-Documents

Я создал другой скрипт для захвата stderr на одной из неудачных проверок, чтобы попытаться выяснить, что происходит не так

#!/bin/bash

. /frontview/bin/functions
get_language_strings

cd /c

resultA="$(svn update SVN-Documents1)"
exitA=$?

mesg="$resultA\r\nExit  Code $exitA\r\n\n"

subject="ReadyNAS Duo SVN Documents Update "$(date +%T)
send_email_alert "$subject" "$mesg" "$EMAIL"

##save the message to status log
log_status "$subject" 0

Результатом этого при запуске cron.daily является толькоследующий

Updating 'SVN-Documents1':
Exit  Code 1

но когда я запускаю этот скрипт, вошедший в систему как root, я получаю

Updating 'SVN-Documents1':
At revision 2944.
Exit  Code 0

Итак - я думаю, что мой РЕАЛЬНЫЙ вопрос - Как я могу получить больше информации очто происходит, когда запускается cron.daily?

Я использую TortoiseSVN на машинах с Windows много лет, но у меня нет большого опыта использования терминала в Linux.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

хорошо - значит, найдено решение

Добавлен stderr в стандартный вывод, используя следующую команду:

svn update $1 2>&1

, которая показала, что команде не удалось перевести UTF-8 на родной язык

Обнаружено, что bash-скрипт использует posix, когда для входа в систему root используется utf-8

и добавил следующее в bash-скрипт, чтобы исправить это

export LC_CTYPE="en_US.utf8"

Теперь все работает нормально

0 голосов
/ 22 февраля 2019

эти репозитории могут быть настроены по-разному;нет добавления пользователя root.

кроме того, svn update ожидает путь, а не имя хранилища.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...