Closed mr-butch closed 8 years ago
Пожалуйста, приложите всю информацию, которая была запрошена при создании issue. Без неё врятли чем-то смогу вам помочь.
Linux version 2.6.22.19 (root@asus) (gcc version 4.2.3) #1 Fri Jan 15 08:41:55 CST 2016
GNU bash, version 4.3.42(1)-release (mipsel-openwrt-linux-gnu)
GNU Wget 1.17.1 built on linux-gnu.
+digest -gpgme +https +ipv6 -iri +large-file -metalink -nls +ntlm
+opie -psl +ssl/openssl
curl 7.48.0 (mipsel-openwrt-linux-gnu) libcurl/7.48.0 OpenSSL/1.0.2h zlib/1.2.8
Protocols: file ftp ftps http https imap imaps pop3 pop3s rtsp smtp smtps tftp
Features: IPv6 Largefile SSL libz
cat: can't open './conf.d/*.conf': No such file or directory
export NOD32MIRROR_COLOR_OUTPUT=1;
export NOD32MIRROR_USE_FREE_KEY=1;
export NOD32MIRROR_MIRROR_DIR="/opt/etc/nod32-mirror/nod32mirror";
export NOD32MIRROR_TEMP_DIR="/opt/etc/nod32-mirror/nod32mirror/tmp";
export NOD32MIRROR_SERVER_0='http://update.eset.com:80/eset_upd/ username password';
export NOD32MIRROR_LANGUAGES='1033 1049';
export NOD32MIRROR_VERSIONS='pcu 4 5 6 7 8 9 10 11';
export NOD32MIRROR_LOG_PATH="/opt/etc/nod32-mirror/nod32mirror/nod32mirror.log";
export NOD32MIRROR_TEST_URI='http://update.eset.com:80/v8-rel-sta/mod_010_smon_1036/em010_32_l0.nup';
export NOD32MIRROR_TIMESTAMP_FILE_NAME='lastevent.txt';
export NOD32MIRROR_VERSION_FILE_NAME='version.txt';
Хорошо. По поводу первого - лучше всего скопируйте свой текущий конфиг в ./conf.d, и уже его изменяйте под себя (об этом было написано в readme-файле, но вам виднее конечно-же). Добавьте в него строку:
export NOD32MIRROR_BASE_DIR="/opt/etc/путь/до/директории/с_файлом_nod32-mirror.sh";
По поводу второго - попробуйте в конфиге выставить:
export NOD32MIRROR_CURL_BIN='false';
Тем самым заставив скрипт работать с wget вместо curl. Думаю, этого должно быть вполне достаточно.
По поводу первого, Еще со времен старых Ваших скриптов решаю этот вопрос заменой "dirname $(readlink -e $0)" на просто "dirname $0". У меня только так работает. Но все равно есть еще ошибки при выполнении:
./nod32-mirror.sh --update
./include/bootstrap.sh: line 61: id: command not found
[00:12:13] Please do not run this script as root
[Question] Do you want to continue? [y|n] y
Я отвечаю "y" и идет дальше, не знаю на что влияет это ошибка.
По поводу второго Ваше предложение помогло, теперь в конце строки "Download file..." пишет Success.
В остальном продолжаю тестировать.
dirname $0
не сработает корректно, если к скрипту обращаться по симлинку. Но проблема известна, и именно поэтому пользуйтесь директивой NOD32MIRROR_BASE_DIR
.
Попробуйте поработать с cygwin (если стоит задача завести именно под windows), работа под ним протестирована и будет поддерживаться.
[[ -z $NOD32MIRROR_BASE_DIR ]] && export NOD32MIRROR_BASE_DIR=$(dirname $(readlink -e $0));
в "nod32-mirror.sh" на [[ -z $NOD32MIRROR_BASE_DIR ]] && export NOD32MIRROR_BASE_DIR="/opt/etc/путь/до/директории/с_файлом_nod32-mirror.sh";
, позже подумаю как этот костыль обойти.-f
- в этом случае ошибка проверки хоть и будет появляться, но значения никакого иметь не будет.В чем отличие запуска скрипта вручную от запуска cron? Если скрипт запускать вручную, то по Вашему наводке изменив export NOD32MIRROR_CURL_BIN='false'; загрузка файлов пошла. Но если же скрипт запускать через cron, то файлы закачиваться не хотят. Выходит ошибка загрузки. Формируются только папки с файлами update.ver. Самих файлов нет (
По идее разницы - никакой, если всё делается корректно. Без логов кронтаба, логов работы скрипта, отладочной информации и данных о запуске - ничего сказать не могу. Пора бы это уже понять.
Теперь разобрался, в файле nod32keys.sh нужно было заменить переменную $HOME на нужный мне путь сохранения ключей. Считаю необходимым вынести в конфигурационный файл путь сохранения ключей, либо NOD32MIRROR_BASE_DIR, потому как $HOME у меня лично не срабатывает.
Достаточно в конфиг добавить:
export NOD32MIRROR_KEYS_DIRECTORY="$HOME/.nod32keys";
Но ваше замечание по поводу выноса данной опции в конфиг я обязательно учту, спасибо!
Без конфигов как скрипта, так и nginx, без лога, без описания действия для воспроизведения поведения - увы, помочь ничем не могу.
Я не уверен что там вообще nginx, загружаю на внешний.
Конфиг снова приложил, его не менял. default.txt
У меня обновления лежат в папке NodUpDate, поэтому с прежним скриптом клиенты обращаются:
[13/Jul/2016:06:00:15 +0300] "GET /NodUpDate/em001_32_l0.nup HTTP/1.0" 200 764793 "-" "ESS Update (Windows; U; 32bit......)"
С новым скриптом обращение идет на:
[18/Jul/2016:09:09:05 +0300] "GET /em017_64_l0.nup HTTP/1.1" 404 304 "-" "ESS Update (Windows; U; 32bit....)"
и соответственно файлы не находит. Если залить обновления сформированные старым скриптом, то все ОК, клиенты обновляются.
А по поводу 1-го вопроса, у Вас все ок, при уже имеющихся файлах в папке nod32mirror?
К сожалению, я буду вынужден повторить то что уже говорил ранее:
nginx
;nginx
:NOD32MIRROR_URI_PATH
. Перед тем как задавать свой вопрос, ознакомьтесь внимательнее с возможными настройками, пожалуйста;По причине того что вы игнорируете просьбы предоставить необходимые для помощи вам-же данные в отформатированном виде - сабж закрываю. Если у вас возникнут ещё какие-либо вопросы - перечитайте описанные выше пункты с первого по четвертый. Спасибо.