Nextcloud の バックアップスクリプト

仕事で使ってるNextcloud。
グループウェアとかオブジェクトストレージとの連携とかで大変便利なのですが、
ようやく便利さに気が付いたスタッフが出てきてくれてたので、
DBとか最低限のバックアップを毎日やるためにシェルスクリプトを作りました。

広告

Nextcloud の バックアップスクリプト

#!/bin/sh

DST="root/nextcloud-bk"
DBUSER='******'
DBPASSWORD='******'
DBHOST='******'
DBNAME='******'
DATETIME=`date +%Y%m%d`
DELDATA=`date -d -7day +%Y%m%d`

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on

mkdir /${DST}/${DATETIME}
mkdir /${DST}/${DATETIME}/config
mkdir /${DST}/${DATETIME}/data
mkdir /${DST}/${DATETIME}/themes

rsync -Aax /var/www/nextcloud/config/ /${DST}/${DATETIME}/config/
rsync -Aax /var/www/nextcloud/data/ /${DST}/${DATETIME}/data/
rsync -Aax /var/www/nextcloud/themes/ /${DST}/${DATETIME}/themes/

SQL="mysqldump -h $DBHOST -u $DBUSER -p$DBPASSWORD --no-tablespaces $DBNAME | gzip > /$DST/$DATETIME/bksql.dump.gz"
eval $SQL

tar zcf /${DST}/${DATETIME}-bkup.tar.gz -C / ${DST}/${DATETIME}

chmod 664 /${DST}/${DATETIME}-bkup.tar.gz 

SERVER='******'
USER='******'
PASS='******'

ftp -n <<END
open $SERVER
user $USER $PASS
passive
prompt
lcd /home/ubuntu/nextcloud-bk
mput ${DATETIME}-bkup.tar.gz 
mdelete ${DELDATA}-bkup.tar.gz 
bye
END

rm -r /${DST}/${DATETIME}
rm /${DST}/${DATETIME}-bkup.tar.gz

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

こんな感じにした。
ストレージはオブジェクトストレージになってるから、Nextcloud側のディレクトリはバックアップの必要性無いんだけど一応。
大した大きさにならないし。

Nextcloud側にファイルを保存してる場合は、書き方変えたほうが良いと思う。


crontab -e

0 1 * * * /root/next_backup.sh > /root/next_backup.log

# service cron restart

あとはcronに登録して終了。
これで毎日深夜にDBのバックアップもやってくれる。


おすすめのコンテンツ

広告

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください