Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сервер накрылся, в чем проблема в команде? 
:(
    Опции темы
Logo
Дата 22.10.2009, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: нет
Всего: 10



Не знаю кто виноват, в команде ли проблема, или это сервак глюканул.
Ввел команду через SSH, и все, приконнектится нельзя, сайты не работают. Приходится восстанавливать из бекапов, часть работы потерянно.
Команда 
Код

perl -l?ne 'print `rm -r $_/*`' sites.txt

Выполнил в каталоге www, где сайты лежат, надо было очистить несколько папок от стандартных файлов, создаваемых при создании домена через панель. В sites.txt имена доменов. Во после выполнения он еще че-то несколько раз спросил, на что я ответил n. l ключ поставил с вопросом, т.к. не помню был он или нет. VDS, FreeBSD, под пользователем root.
PM MAIL   Вверх
amg
Дата 22.10.2009, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 9
Всего: 50



Цитата(Logo @  22.10.2009,  09:47 Найти цитируемый пост)
Не знаю кто виноват, в команде ли проблема, или это сервак глюканул.
Может, и в команде проблема. Нужно было сначала chomp сделать, а без него как поведет себя твой sh, когда встретит символы конца строки, которыми оканчиваются $_ -- фиг его знает. Худший вариант -- воспримет их как пробелы, и тогда rm -r ... /*

PM MAIL   Вверх
krypt3r
Дата 22.10.2009, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: 1
Всего: 16



chomp делается при указании параметра -l
Сравните, команда
Код

$ perl -MO=Deparse -lne 'print "rm -r $_/*"' sites.txt

выведет
Код

BEGIN { $/ = "\n"; $\ = "\n"; }
LINE: while (defined($_ = <ARGV>)) {
    chomp $_;
    print "rm -r $_/*";
}
-e syntax OK

а команда
Код

$ perl -MO=Deparse -ne 'print "rm -r $_/*"' sites.txt

выведет
Код

LINE: while (defined($_ = <ARGV>)) {
    print "rm -r $_/*";
}
-e syntax OK


PM MAIL   Вверх
KSURi
Дата 22.10.2009, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 5
Всего: 27



Цитата(Logo @  22.10.2009,  09:47 Найти цитируемый пост)
perl -l?ne 'print `rm -r $_/*`' sites.txt

Надо было так:
Код

perl -lne 'print `rm -r $_/*`' < sites.txt

Поскольку в данном случае $_ не инициализирована, то получается, что команда была rm -r /*

UPD: поспешил, оказывается -n работает и без <

Это сообщение отредактировал(а) KSURi - 22.10.2009, 13:13


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
amg
Дата 22.10.2009, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 9
Всего: 50



Цитата(krypt3r @  22.10.2009,  12:20 Найти цитируемый пост)
chomp делается при указании параметра -l
Спасибо за эту информацию!

PM MAIL   Вверх
Logo
Дата 22.10.2009, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: нет
Всего: 10



Проверил, у меня перевод строки в $_ есть и с l, и без. Наверно, из-за него случилось.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0431 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.