Появилась задача по созданию бэкапов на одной из своих VPS. Решил собрать решение на Borg Backup для хранения и на MariaDB-Backup для бэкапа БД. Borg выбран ввиду того, что он умеет делать инкрементальные бэкапы и дедупликацию, что в рамках ограниченного места на VPS очень актуально. А еще есть возможность создавать защищенные бэкапы. По итогу, все […]
Потребовалась биллинговая система под свои задачи. Решил глянуть open source решения, из тех что глянул — это: FossBilling — нашел случайно, потыкал демку на их сайте, показалась интересной. Joonte JBs Billing — давно знал, отечественное решение, есть возможность общаться с основным разработчиком напрямую. В общем выбрал второй вариант. И сразу же первые грабли, нет документации, […]
На одном из серверов заметил что при наличии свободной оперативной памяти активно используется swap. В процессе разбора в проблеме, нашелся интересный параметр ядра vm.swappiness, по сути он отвечает сколько процентов от общего объема оперативной памяти должно быть использовано, чтоб начал использоваться swap.
1 2 |
cat /proc/sys/vm/swappiness 60 |
Те например при 10гб оперативной памяти, если будет использовано более 6гб, то […]
Почти везде и всегда пользуюсь, но почему то даже заметки не написал на эту тему в блоге. Хотя функциональность очень полезная и главное удобная! Короткое how-to, для тех кому лень читать портянку(предполагается что на целевой машине стоит sudo и пользователь user добавлен в его группу):
1 2 3 |
ssh-keygen -t rsa -f ~/my-key && chmod 600 ~/my-key && ssh-copy-id -i ~/my-key.pub user@target-server ssh user@target-server "echo user_password | sudo -S sed -i -E 's/#\s*PasswordAuthentication yes/\nPasswordAuthentication no/' /etc/ssh/sshd_config && echo user_password | sudo -S service sshd restart" ssh -i ~/my-key.pub user@target-server |
target-server — сервер к которому мы планируем подключаться по […]
На память о яндекс практикуме 🙂
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/bin/bash start=$1 end=$2 dir_path=${3:-~} # Опциональный третий аргумент — путь к директории, по умолчанию домашний каталог for ((i=start; i<=end; i++)) do archive_name=$(printf "archive-%03d.tar.gz" $i) # Форматирование номера с ведущим нулём d=$i let d-- archive_name_del=$(printf "archive-%03d.tar.gz" $d) archive_path="$dir_path/$archive_name" if [ -f "$archive_path" ]; then echo "Extracting $archive_name..." tar xzvf "$archive_path" rm $dir_path/$archive_name_del else echo "Archive $archive_name not found in $dir_path" exit 1 fi done |
Пожалуй это было самое интересное задание, на 15 архиве я понял что нужно автоматизировать 🙂 Скрипт не претендует на какую либо красоту, просто решает конкретную задачу.
Свежие мысли