Как-то форум
Полезные скриптики - Версия для печати

+- Как-то форум (https://uni-site.tk)
+-- Форум Общий форум (https://uni-site.tk/forum-34.html)
+--- Форум IT секция (https://uni-site.tk/forum-38.html)
+--- Темы: Полезные скриптики (/thread-69.html)



Полезные скриптики - Hanzo - 21-01-2021

Разные скрипты для автомации нудных задач.


RE: Полезные скриптики - Hanzo - 21-01-2021

Так как этот форум иногда меняется, то его стоит бекапить.

А для этого нужен FTP, бо форум не на моём серваке и другого доступа туда нету.

Сделал небольшой скриптик в cron
Для работы нужны установленные rsync и curlftpfs

Если нужно инкрементально в ту же директорию, запускаем как есть.
Если нужны полные бекапы - добавляем snap после скрипта.
Цитата:/path/to/script.sh snap


Код:
#!/bin/bash
HOMEPOINT='/home/folder'                           #edit accordingly
FTPMOUNT='website/path/to/files                     #edit accordingly
MOUNTPOINT="$HOMEPOINT/ftpfolder"                  #edit accordingly
BACKUPPOINT="$HOMEPOINT/backup.0/"                 #edit accordingly
USERPASS="someuser:somepass"                       #edit accordingly
NUMBERBACKUPS=2                                    #edit accordingly

function snapshot {
COUNT=$NUMBERBACKUPS
while [ $COUNT -gt 1 ]; do
  test -d $HOMEPOINT/backup.$((COUNT-1)) && mv $HOMEPOINT/backup.$((COUNT-1)) $HOMEPOINT/backup.$COUNT
  ((COUNT--))
done
test -d $BACKUPPOINT && mv $BACKUPPOINT $HOMEPOINT/backup.1
mv $HOMEPOINT/backup.log $HOMEPOINT/backup.log.1
}

if grep -qs "$MOUNTPOINT" /proc/mounts; then
  fusermount -u $MOUNTPOINT/ && curlftpfs ftp://$FTPMOUNT $MOUNTPOINT -o user=$USERPASS || exit 5
else
  curlftpfs ftp://$FTPMOUNT $MOUNTPOINT -o user=$USERPASS || exit 1
fi

if [ "$1" == "snap" ]; then
snapshot
fi

rsync -avr --delete $MOUNTPOINT/ $BACKUPPOINT/ --log-file=$HOMEPOINT/backup.log || exit 4
fusermount -u $MOUNTPOINT/ || exit 5