BASH – гибкий инструмент для выполнения административных задач. Виктор Таран Технический директор студии Клондайк Кейсы по BASH
#bitrixconf2015 Эти кексы реально вкусны. Кейсы по BASH! Партнерская конференция Архивируем правильно: скрытые файлы, уровень сжатия, исключение бэкапов разница между «.» и «*», zip wget. 2. Права файлов при редактирование по ssh (владелец файлов и группа). 3. Полезные утилиты: htop, iotop, vimdiff, multitail, w3m. 4. Bash для профессионалов (рекурсивная работа с содержимым файлов использование find grep xargs sed, regexp). 5.Вопросы.
1. Размер сайта не имеет значения. 2. Скорость перемещения данных. 3. Использование консольного ПО. 4. Эмуляция FTP (SFTP). 5. Повышение эффективности работы. #bitrixconf2015 Плюсы SSH Партнерская конференция 2015
Эти кексы реально вкусны. Архивируем правильно: скрытые файлы, уровень сжатия, исключение бэкапов разница между «.» и «*», zip wget. Партнерская конференция 2015
1 шаг: Архиватор ZIP zip -r -9 archive.zip * -r рекурсивно -0 уровень сжатия -x исключить zip -r -0 archive.zip. -x./bitrix/backup/* #bitrixconf2015 Партнерская конференция 2015
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 #bitrixconf2015
2 шаг: dump mysql Итог: эффективен при больших базах данных. Нет ограничений PHP. Не требует копирования на локальную машину. mysqldump -uюзер -pпароль database > database.sql wget site.ru/database.sql mysq -uюзер -pпароль database < database.sql #bitrixconf2015
Эти кексы реально вкусны. Права файлов при редактирование по ssh (владелец файлов и группа). Партнерская конференция 2015
Права на файлы Итог: Не забывайте поменять группу:владельца chown -R user:group /var/ww/site.ru/ #bitrixconf2015
Эти кексы реально вкусны. Полезные утилиты: htop, iotop, vimdiff, multitail, w3m. Партнерская конференция 2015
HTOP – диспетчер процессов Аналог top с интерфейсом. #bitrixconf2015
Программы iotop Загрузка I-O системы Iotop -o -k -a суммирует по процессам #bitrixconf2015
vimdiff – сравнение файлов Сравнение файлов vimdiff file1 file2 #bitrixconf2015
multitail – чтение логов multitail file file2 #bitrixconf2015
Программы w3m Консольный браузер #bitrixconf2015
Эти кексы реально вкусны. Bash для профессионалов (рекурсивная работа с содержимым файлов использование find grep xargs sed, regexp). Партнерская конференция 2015
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 sed s/\x22helo\x22\x2C/\x22helo woorld\x22\x2C/g Итог: Использование HEX-16 позволяет вставлять спецсимволы = x22, = x2C = x27 Замена текста содержащего спец символы.
find+sed рекурсивная замена Поиск всех CSS файлов с заменой найденной строки Заменить параметр во всех php.ini от текущего каталога find. -name 'php.ini' -exec sed -i 's/func_overload=0/func_overload=2/g' "{}" \; Итог: Исключаем человеческий фактор. find. -type f -name '*.css' -exec sed -i 's/#3ba4c2/#460D57/g' {} \; #bitrixconf2015
find +xargs+ cp Поиск всех изображений и копирование их с сохранением структуры find. -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" -print0 | xargs -0 cp --parents --target-directory./tmp/backup Итог: Устанавливаем копирайт. 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=' '- xmp-xmprights:marked=1' {} \; Замена exif во всех изображениях сайта. #bitrixconf2015
find + exiftools Поиск всех изображений и копирование их с сохранением структуры find. -regex ".*\.\(jpg\|jpeg\|gif\|png\|JPG\|JPEG\|GIF\|PNG\)" -print0 | xargs -0 cp --parents --target-directory./tmp/backup Итог: устанавливаем копирайт 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=' '- xmp-xmprights:marked=1' {} \; Замена exif во всех изображениях сайта. #bitrixconf2015
Использование BASH поможет сократить время на решение административных задач. Партнерская конференция 2015 #bitrixconf2015
Спасибо за внимание. Вопросы ? #bitrixconf2015