September 6, 2022
Скрипт авто-бекапа для ноды NEAR
В рамках 14 задания создадим скрипт для резервного копирования базы данных ноды Near и её архивирования. Так же добавим задание на запуск скрипта в планировщик задач Cron
sudo apt install moreutils zip cd scripts nano backup.sh
#!/bin/bash
DATE=$(date +%Y-%m-%d)
DATADIR=/root/.near
BACKUPS_DIR=/root/backups
BACKUP_DATA=${BACKUPS_DIR}/near_${DATE}
SERVICE_NEAR_NAME=nearbackupd.service
NEW_BACKUP_FILE=$BACKUP_DATA.zip
# создание директории, если ещё не создана
if [ ! -d "$BACKUPS_DIR" ]; then
echo "Create directory $BACKUPS_DIR" | ts
mkdir $BACKUPS_DIR
fi
# удаление старого бэкапа
OLD_BACKUPS=`ls $BACKUPS_DIR/*.zip`
for file in $OLD_BACKUPS
do
rm $file
if [ ! -d "$file" ]; then
echo "$file has been deleted" | ts
fi
done
sudo systemctl stop $SERVICE_NEAR_NAME
wait
echo "New backup started" | ts
zip -r $BACKUP_DATA $DATADIR
echo "Backup completed" | ts
sudo systemctl start $SERVICE_NEAR_NAMEДобавление разрешений для исполняемого файла
chmod +x backup.sh
sudo ./backup.sh
Создание задачи crontab, для запуска скрипта
sudo nano /etc/crontab
0 * 2 * * root /root/scripts/backup.sh >> /root/logs/backup.log