Кейсы по BASH BASH – гибкий инструмент для выполнения административных задач. Виктор Таран Технический директор студии Клондайк Партнерская конференция 2015 Эти кексы реально вкусны. Кейсы по BASH! 1. 2. 3. 4. 5. Архивируем правильно: скрытые файлы, уровень сжатия, исключение бэкапов разница между «.» и «*», zip wget. Права файлов при редактирование по ssh (владелец файлов и группа). Полезные утилиты: htop, iotop, vimdiff, multitail, w3m. Bash для профессионалов (рекурсивная работа с содержимым файлов использование find grep xargs sed, regexp). Вопросы. #bitrixconf2015 Партнерская конференция 2015 Плюсы SSH 1. Размер сайта не имеет значения. 2. Скорость перемещения данных. 3. Использование консольного ПО. 4. Эмуляция FTP (SFTP). 5. Повышение эффективности работы. #bitrixconf2015 Партнерская конференция 2015 Эти кексы реально вкусны. Архивируем правильно: скрытые файлы, уровень сжатия, исключение бэкапов разница между «.» и «*», zip wget. Партнерская конференция 2015 1 шаг: Архиватор ZIP zip -r -9 archive.zip * -r рекурсивно -0 уровень сжатия -x исключить zip -r -0 archive.zip . -x ./bitrix/backup/* #bitrixconf2015 ZIP время архивации (тест) time zip -r -0 archive.zip . -x /bitrix/backup/* -x archive.zip time zip -r -9 archive.zip . -x /bitrix/backup/* -x archive.zip 980MB 1200MB 250 Время в секундах 200 150 100 50 0 1 2 3 4 Количество тестов Итог: Увеличение уровня компрессии неоправданно. #bitrixconf2015 5 6 7 2 шаг: dump mysql Нет ограничений PHP. Не требует копирования на локальную машину. mysqldump -uюзер -pпароль database > database.sql wget site.ru/database.sql mysq -uюзер -pпароль database < database.sql Итог: эффективен при больших базах данных. #bitrixconf2015 Партнерская конференция 2015 Эти кексы реально вкусны. Права файлов при редактирование по ssh (владелец файлов и группа). Права на файлы chown -R user:group /var/ww/site.ru/ Итог: Не забывайте поменять группу:владельца #bitrixconf2015 Партнерская конференция 2015 Эти кексы реально вкусны. Полезные утилиты: htop, iotop, vimdiff, multitail, w3m. HTOP – диспетчер процессов Аналог top с интерфейсом. #bitrixconf2015 Программы iotop Загрузка I-O системы Iotop -o -k -a суммирует по процессам #bitrixconf2015 vimdiff – сравнение файлов Сравнение файлов vimdiff file1 file2 #bitrixconf2015 multitail – чтение логов multitail file file2 #bitrixconf2015 Программы w3m Консольный браузер #bitrixconf2015 Партнерская конференция 2015 Эти кексы реально вкусны. Bash для профессионалов (рекурсивная работа с содержимым файлов использование find grep xargs sed, regexp). FIND -exec или xargx find . -type f -exec chmod 644 {} \; find . -type f -print | xargs chmod 644 find рекурсивный поиск -type f только файлы -exeс выполнить команду chmod сменить права {} найденые файлы xargs – утилита формирования списка аргументов Итог: использование xargs как минимум в 10 раз быстрее. #bitrixconf2015 sed Замена текста содержащего спец символы. sed -i ‘s/\”helo\”\,/”helo world”,/g’ test.php “ = x22 , = x2C ‘ = x27 sed ‘s/\x22helo\x22\x2C/\x22helo woorld\x22\x2C/g’ Итог: Использование HEX-16 позволяет вставлять спецсимволы find+sed рекурсивная замена Поиск всех CSS файлов с заменой найденной строки find . -type f -name '*.css' -exec sed -i 's/#3ba4c2/#460D57/g' {} \; Заменить параметр во всех php.ini от текущего каталога find . -name 'php.ini' -exec sed -i 's/func_overload=0/func_overload=2/g' "{}" \; Итог: Исключаем человеческий фактор. #bitrixconf2015 find +xargs+ cp Поиск всех изображений и копирование их с сохранением структуры find . -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" -print0 | xargs -0 cp --parents --target-directory ./tmp/backup Замена exif во всех изображениях сайта. find . -type f -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" -size +1 -exec exiftool Artist='Завод металлических дверей Медверь' -Copyright='МЕДВЕРЬ' -By-line='medver.ru' Credit='Klondike-studio.ru' -title='Металлические двери Медверь' -Contact='http://medver.ru' 'xmp-xmprights:marked=1' {} \; Итог: Устанавливаем копирайт. #bitrixconf2015 find + exiftools Поиск всех изображений и копирование их с сохранением структуры find . -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" -print0 | xargs -0 cp --parents --target-directory ./tmp/backup Замена exif во всех изображениях сайта. find . -type f -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" -size +1 -exec exiftool Artist='Завод металлических дверей Медверь' -Copyright='МЕДВЕРЬ' -By-line='medver.ru' Credit='Klondike-studio.ru' -title='Металлические двери Медверь' -Contact='http://medver.ru' 'xmp-xmprights:marked=1' {} \; Итог: устанавливаем копирайт #bitrixconf2015 Партнерская конференция 2015 Использование BASH поможет сократить время на решение административных задач. #bitrixconf2015 Спасибо за внимание. Вопросы ? #bitrixconf2015