#Полезные материалы
Shared Folders в OpenVZ 7.0 — https://habr.com/ru/post/309758/
#MySQL (шпора по командам)
use <basename>; — выбрать базу
Бэкап всех баз:
mysqldump [OPTIONS] --all-databases
#Telegram
Отправка сообщения в чат Telegram из скрипта:
curl -X POST "https://api.telegram.org/bot376775777:AAFNVUZXFX0EnRZyweuY5iAnMGd1VsQ1Opg/sendMessage" -d "chat_id=-218318367&text=message to chat"
#OpenVZ
Если скрипт с командой exec или exec2 не выполняется из крона, то прописать в начало скрипта:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Лимит нагрузки на диски:
vzctl set 777 --iolimit 3M --save
Подробнее про лимиты на диск и проверку тут.
Установить объём RAM - vzctl set {ID} --privvmpages 512M:512M --save
Кол-во оперативной памяти, используемой контейнером
vzctl exec2 110 free -m | grep Mem | awk '{print $3}'
Выполнение команд в каждом контейнере в цикле:
# for CT in $(vzlist -H -o ctid); do echo "== CT $CT =="; vzctl exec $CT uptime; done
Конвертирование из ploop в simfs — https://gist.github.com/dlage/8dd97c285e2dd41f58c2
Если операция заканчивается с ошибкой, но при этом получился готовый каталог с именем «имя контейнера.fail», а скрипт ругается на то, что не нашёл в конце конфигурации для этого контейнера, то можно вручную переименовать полученный каталог, скопировать для него конфиг и запустить контейнер.
Интересные и полезные видео:
Живая миграция контейнеров: плюсы, минусы, подводные камни -https://events.yandex.ru/lib/talks/3118/
CRIU: больше, чем живая миграция для Linux контейнеров — https://events.yandex.ru/lib/talks/352/