先日作ったNextcloudのSQLのバックアップスクリプトですが、
やっぱりFTPはやめよー と思ってAWS S3にバックアップする事にしました。
なので、その変更とAWS CLIのインストールメモ。
広告
AWS CLI のインストール
まずはpython3-pip。
# apt install python3-pip //バージョンの確認するなら↓ # pip3 --version
そしてインストール。
# pip3 install awscli --upgrade --user # aws --version Command 'aws' not found, but can be installed with:
となるので、
# apt install awscli
今度は設定
# aws configure AWS Access Key ID [None]: {アクセスキー} AWS Secret Access Key [None]:{シークレットキー} Default region name [None]: ap-northeast-1 Default output format [None]: json
# aws s3 ls //S3のバケットが表示されればOK
バックアップスクリプト
#!/bin/sh DST="root/nextcloud-bk" DBUSER='{ユーザー名}' DBPASSWORD='{DBパスワード}' DBHOST='{ホスト}' DBNAME='{DB名}' 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 aws s3 cp /${DST}/${DATETIME}-bkup.tar.gz s3://バケット/${DATETIME}-bkup.tar.gz aws s3 rm s3://バケット/${DELDATA}-bkup.tar.gz rm -r /${DST}/${DATETIME} rm /${DST}/${DATETIME}-bkup.tar.gz sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
# chmod +x awsbackup.sh
こんな感じでcronにセット。
S3ならストレージ安いから7日で消さないでも全然良いと思うです。
2022/2/9に追記
実行結果をメールで飛ばしたかったけど、設定に苦戦したのでメモ。
cronのログをメール送信
わざわざサーバーに入って確認したくないからメールで飛ばす事に。
でもMAILTOで飛ばなかったのでちょっと苦戦しました。
# apt install ssmtp # apt install mailutils
ssmtpを使う事にしました。
mailutilsをインストしてなくてmailコマンドが使えなかったのが苦戦の原因。
# vim /etc/ssmtp/ssmtp.conf root=backup@hoge.hoge mailhub=smtp.hoge.hoge:587 AuthUser=backup@hoge.hoge AuthPass=hogePass UseTLS=YES UseSTARTTLS=YES hostname=hoge.hoge FromLineOverride=YES
SMTPの設定。
# crontab -e 0 1 * * * /root/next_backup.sh 2>&1 | mail -s 'Backup Log' -r 送信元アドレス@hoge.hoge 送信先アドレス@hoge.hoge
実行ー-
Maintenance mode enabled Completed 256.0 KiB/27.2 MiB (1.3 MiB/s) with 1 file(s) remaining Completed 512.0 KiB/27.2 MiB (2.4 MiB/s) with 1 file(s) remaining Completed 768.0 KiB/27.2 MiB (3.4 MiB/s) with 1 file(s) remaining Completed 1.0 MiB/27.2 MiB (4.4 MiB/s) with 1 file(s) remaining Completed 1.2 MiB/27.2 MiB (5.3 MiB/s) with 1 file(s) remaining Completed 1.5 MiB/27.2 MiB (6.2 MiB/s) with 1 file(s) remaining Completed 1.8 MiB/27.2 MiB (7.1 MiB/s) with 1 file(s) remaining :::省略 Completed 26.7 MiB/27.2 MiB (20.2 MiB/s) with 1 file(s) remaining Completed 27.0 MiB/27.2 MiB (20.0 MiB/s) with 1 file(s) remaining Completed 27.2 MiB/27.2 MiB (19.6 MiB/s) with 1 file(s) remaining upload: ../root/nextcloud-bk/20220209-bkup.tar.gz to s3://nextcloudback/20220209-bkup.tar.gz delete: s3://nextcloudback/20220202-bkup.tar.gz Maintenance mode disabled
とメールでLOGが届きます。
これで毎日監視できる。
ではでは
おすすめのコンテンツ
広告