BASH PPTX, 2 МБ

advertisement
Кейсы по 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
Download