Часто в Unix администрировании приходится использовать работу с ssh коннектами. Особенно, если это касается скриптов для полуавтоматизации, то это может сильно раздражать – ведь для того, чтобы скопировать что-то через scp или rsync, ваши скриптам придется прерываться и запрашивать у вас пароль. Какая тут автоматизация?
Что делать? Прочитать эту статейку…
Архив за ‘Unix’ категория
OpenSSH и доступ по ключам
Август 9th, 2010rsync – быстрый резерв + быстрый перенос сайтов
Июнь 16th, 2010Когда-то давно, для резервирования, я использовал такие, казалось бы, незаменимые утилиты, как tar или pax. Я слышал в то время про rsync, но не представлял себе, как она в точности работает, поэтому я ощибочно полагал, что rsync – простая утилита копирования. А раз простая, то вряд ли я получу от нее много толку. Поэтому я продолжал и продолжал пользоваться tar или pax, затем копировал по scp эти архивы, там распаковывал и т.п.. Я даже использовал find затем, чтобы докопировать файлы, которые изменились за последние сутки. Эх, жаль, что я столько много истратил времени на копирование, ведь была rsync!
» Читать дальше: rsync – быстрый резерв + быстрый перенос сайтов
readline команды (MySQL, bash, rlwrap)
Декабрь 2nd, 2009Данная статейка уже носит чисто профессиональный характер – она для тех, кто работает в Unix и работает в bash, tcsh шеллах, а также работает с MySQL. Сейчас я расскажу о нескольких очень полезных «горячих» клавишах для работы в командной строке.
Самая мощная DDoS атака и офигенный Firewall…
Ноябрь 26th, 2009- Одна человеческая клетка содержит 75Мб генетической информации
- Один сперматозоид содержит 37.5Мб.
- В одном миллилитре содержится около 100 млн сперматозоидов.
- В среднем, эякуляция длится 5 секунд и составляет 2.25 мл спермы.
- Таким образом, пропускная способность мужского члена будет равна:
- (37.5Мб x 100M x 2.25)/5 = (37 500 000 байт/сперматозоид x 100 000 000 сперматозоид/мл x 2.25 мл) / 5 секунд = 1 687 500 000 000 000 байт/секунду = 1 687.5 Терабайт/с
Получается что женская яйцеклетка выдерживает эту DDoS-атаку на полтора терабайта в секунду, пропуская только один выбранный пакет данных и является самым офигенным в мире хардварным фаерволом…
Но тот один пакет, который она пропускает, валит систему на 9 месяцев…
sed – некоторые тонкости regexp
Октябрь 29th, 2009До недавнего времени сколько бы я не делал попыток написать для sed хоть мало мальское регулярное выражение, оно у меня не работало. Я не мог понять в чем дело, ведь там синтаксис должен быть практически такой же, как в perl. Но для меня Sed оставался странной лошадкой, которую хотелось бы обуздать, но не получалось.
И вот, наконец, сегодня я прочел грамотную доку, а также в другом месте нашел объяснение моим проблемам. Оказывается, в sed есть очень мелкие, но важные отличия, поняв которые, вы сможете писать sed команды легко.
Итак, оказывается, по историческим причинам, чтобы не нарушать работу старых sed команд, в sed группировка (‘(‘, ‘)’) и некоторые другие спец. символы (‘+’ , ‘?’) были заменены на символы со слешем. Вот эти отличия:
| В языке Perl | В sed редакторе | Пояснение |
|---|---|---|
| (…) | \(…\) | Группировка |
| {X,Y} | \{X,Y\} | Заданный множитель |
| + | \+ | Повторитель – один и более раз |
| ? | \? | Повторитель – один или ноль раз |
| \bfoo\b | \<foo\> | поиск ‘foo’ с границами слова |
| $1, $2 | \1, \2 | Подмена на группу |
Самое главное, на чем я спотыкался всегда – я никак не мог додуматься, что ‘\’ должен ставиться перед ‘(‘, или перед ‘?’ и ‘+’ символами, например. Я видел иногда эти слеши в примерах, но я думал, что эти слеши относились к shell, но оказалось, что это тонкость sed-а.
P.S. Возникает вопрос, а как же тогда заменять сами символы: «?+{}()» в sed? А оказывается, их просто не надо ескейпить символом ‘\’. Получается как бы наоборот – эти символы сами по себе не ескейпяться, а когда нужно их специальное назначение, то перед ними ставим ‘\’. Типа все с ног на голову, если сравнивать с perl.