The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Помогите разобраться"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Помогите разобраться"  +/
Сообщение от Yak on 13-Мрт-12, 01:37 
написал скрипт для перезагрузки конфига NGINX при изменении
#!/bin/bash
RELOAD="/etc/init.d/nginx reload"
OLDFILE="/etc/nginx/sites-available/default.old"
NEWFILE="/etc/nginx/sites-available/default"
oldsize=$(stat -c %s $OLDFILE)
newsize=$(stat -c %s $NEWFILE)
if [ "$oldsize" != "$newsize" ];
then
    cp $NEWFILE $OLDFILE 2> /dev/null
    $RELOAD
fi

ОШИБКИ
stat: cannot stat `/etc/nginx/sites-available/default.old\r': No such file or directory
stat: cannot stat `/etc/nginx/sites-available/default\r': No such file or directory
/var/www/nginx-default/1.sh: line 11: syntax error near unexpected token `fi'
/var/www/nginx-default/1.sh: line 11: `fi'

Подскажите где ошибся?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Помогите разобраться"  +/
Сообщение от shadow_alone (ok) on 13-Мрт-12, 03:04 
#!/bin/bash
OLDFILE="/etc/nginx/sites-available/default.old"
NEWFILE="/etc/nginx/sites-available/default"

/usr/bin/diff -q $OLDFILE $NEWFILE > /dev/null

if [ $? -ne 0 ];then
    /etc/init.d/nginx reload
fi


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Помогите разобраться"  +/
Сообщение от parad (ok) on 13-Мрт-12, 16:14 
+1 - размер файла может не измениться при правке.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

6. "Помогите разобраться"  +/
Сообщение от Andrey Mitrofanov on 13-Мрт-12, 16:21 
> /usr/bin/diff -q $OLDFILE $NEWFILE > /dev/null
> if [ $? -ne 0 ];then

if [ $NEWFILE -nt $OLDFILE ];

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

8. "Помогите разобраться"  +/
Сообщение от shadow_alone (ok) on 14-Мрт-12, 06:05 
> if [ $NEWFILE -nt $OLDFILE ];

Ну, более новый, тоже можно. Но он может быть сколько угодно новым, но идентичным по содержанию, отсюда я и применил diff - а это уже 100% что результат будет однозначный.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "Помогите разобраться"  +/
Сообщение от Andrey Mitrofanov on 14-Мрт-12, 09:45 
> Ну, более новый, тоже можно. Но он может быть сколько угодно новым,
> но идентичным по содержанию, отсюда я и применил diff - а
> это уже 100% что результат будет однозначный.

Ладно, так и быть :) , согласен на

if [ $NEWFILE -nt $OLDFILE ] || ! cmp --quiet $NEWFILE $OLDFILE; then

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

2. "Помогите разобраться"  +/
Сообщение от elvenic (ok) on 13-Мрт-12, 03:10 
> stat: cannot stat `/etc/nginx/sites-available/default.old\r': No such file or directory

Похоже вы писали скрипт в редакторе который сохраняет текст в формате MS-DOS, с окончанием строк '\r\n' - в сообщении об ошибке, в имени файла последний символ '\r'.

Если ваш текстовый редактор умеет переключатся в режим где он сохранят текст с окончанием строк '\n', попробуйте сохранить текст скрипта в этом режиме.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Помогите разобраться"  +/
Сообщение от Andrey Mitrofanov on 13-Мрт-12, 10:24 
> Похоже вы писали скрипт в редакторе который

Нет, скопировал созданное на винде notepad-ом в свою FreeBSD через Putty.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Помогите разобраться"  +/
Сообщение от parad (ok) on 13-Мрт-12, 16:13 
>> Похоже вы писали скрипт в редакторе который
> Нет, скопировал созданное на винде notepad-ом в свою FreeBSD через Putty.

это и есть да - вы создали в редакторе, который добавляет в конце строки \r и скопировали с этим символом через пути.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

7. "Помогите разобраться"  +1 +/
Сообщение от Andrey Mitrofanov on 13-Мрт-12, 16:31 
>>> Похоже
>> Нет
> это и есть да

фбсд админы с путти на винде [и не знающие про \r\n] -- это отдельный паттерн. я настаиваю.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру