Метка: Резервирование

  • Миграция self-hosted gitea в rootless docker-контейнер, настройка SSH и Actions

    Photo by Bernd 📷 Dittrich on Unsplash

    Привет. Это закономерное продолжение предыдущей статьи про Gitea, когда я взял сервак и тупо вкатил её туда без особых заморочек.

    Обстоятельства изменились и теперь я хочу большего. Обо всём этом далее — как обычно, в виде описания процесса и готового решения. Рекомендую почитать, потому что это может дать пищу для размышлений и идей, а также понимание происходящего.

    Под хостом в тексте понимается машина, на которой производятся операции. Это может быть твой ПК или сервер.

    (далее…)
  • Резервное копирование фотографий со смартфона

    a person holding a smart phone in their hand
    Photo by Vitalii Khodzinskyi on Unsplash

    Привет. Сегодня заметка о том, как я настроил бекапинг мобильных фоток. Механизм прост, обкатан и проверен месяцами работы, так что описываю как есть.

    Всё базируется на нескольких простых вещах:

    • Syncthing;
    • inotify-tools;
    • демонизированный shell-скрипт.

    На десктопе — Ubuntu, на смартфоне — Android. Базовые хотелки:

    • логирование;
    • конфигурирование;
    • копирование фоток из директории Syncthing в безопасное место;
    • обработка нескопированных вовремя фоток.

    В итоге все фотки и видосики с мобилы будут сами лететь на комп, мы сможем смело чистить память смартфона от лишнего, а потом спокойно сортировать слитые фотки по своему фотоархиву на компе.

    План понятен, погнали делать.

    (далее…)
  • Прокачиваем бекап проекта простым путём

    nimbus clouds and blue calm sky
    Photo by Pero Kalimero on Unsplash

    Это продолжение предыдущего поста про резервирование. Я решил сделать более интересный вариант:

    • резервировать в холодный S3-бакет;
    • прикрутить нотификации на телефон об ошибках и успехах резервирования;
    • исправить пару недочётов из прошлой версии.

    В прошлом посте можешь глянуть исходную версию скрипта. Здесь мы его скорректируем и нарастим вкусным мясом.

    (далее…)
  • Делаем бекап проекта простым путём

    black and white plastic containers
    Photo by Markus Winkler on Unsplash

    Сегодня 07.07.2022. Два дня назад я очень глупо и почти случайно потерял всё, что было на этом сервере. Бэкапы были только от мая — это лучше, чем ничего, однако регулярного резервирования не было. Тут либо жизнь меня ничему не учит, либо уже научила и я стал достаточно аккуратен, чтобы не ронять проды как слон в посудной лавке, позволив себе облениться ¯\_(ツ)_/¯

    В общем, бекапы развернул, всё настроил; делал это в течение нескольких часов на протяжении двух дней. Жаль, я не помню что я мог или потерял окончательно, так что если не досчитаетесь каких-то постов — ну штош.

    До этого я не парился с бекапами: ну есть же какие-то, сервак не шатаю, по счетам плачу сполна, чё ему будет-то? Вчера я психанул и забацал простой скрипт, который делает всё за меня.

    В этот раз я поленился правильно, как должно: не хочешь заниматься рутиной — автоматизируй и не занимайся.

    Поскольку проекты развёрнуты по-старинке, на сервере нет докеров или чего-то сложного, значит и решение элементарно: bash + mysqldump + gzip + rsync + crontab + запасной сервер.

    В эту секунду, возможно, ты уже понял что к чему и пошёл прочь, ибо баян и уже даже твой дедушка так не делал, но мне на это покласть и для остальных я всё же дам некоторые вводные и приложу гист.

    (далее…)
  • DavFS2. Куда утекает свободное место? Got error 28 from storage engine

    DavFS2. Куда утекает свободное место? Got error 28 from storage engine

    На сервере стало уменьшаться свободное место. Какое-то время не придавал этому значения, т.к. чётко знал, что у меня дважды в день работает скрипт автоматического бекапа базы данных с выгрузкой в облако.

    Хранить бекапы в том же месте, что резервировалось — глупый риск. Поэтому я просто чистил устаревше архивы на сервере ручками раз в несколько дней, т.к. они уже есть в облаке.

    Однажды утром, после свежего бекапа, MySQL стал падать с ошибкой:

    Got error 28 from storage engine

    Эта ошибка возникает во время выборки записей из БД. Поскольку выборка хранится в кеше на диске и в этот момент возникает ошибка, значит что-то с ним не так. Самое банальное — закончилось место. По факту так и оказалось. СУБД просто негде было хранить файлы кеша.

    Но как? На сервере свежий бекап только один, и его размер несоизмеримо меньше, чем сейчас должно быть свободного места.

    Начал поиски обжоры.

    (далее…)