差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン | |||
home:management:backup:start [2021/09/04 20:26] yuki 削除 |
— (現在) | ||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ====== バックアップ ====== | ||
- | 基本思想は極力デフォルト機能で何とかする。 | ||
- | * [[.:web:]] | ||
- | |||
- | ===== Webコンテンツのバックアップ ===== | ||
- | |||
- | ==== Dokuwiki ==== | ||
- | Dokuwikiの場合は、ファイルバックアップと同時にVPSに送付して自宅が死んだ際に参照出来るようにもしておく。 | ||
- | |||
- | - [マスター側] スクリプトでSSH実行出来るように公開鍵登録をしておく | ||
- | * <code># ssh-keygen -N "" -t rsa | ||
- | # ssh-copy-id '-p 11122 backup@example.net' | ||
- | backup@example.net's password:</code> | ||
- | - [マスター側] こんな感じのスクリプトを置く。 | ||
- | * <code>#!/bin/sh | ||
- | #:<<: | ||
- | echo "*** dokuwiki backup start. ***" | ||
- | echo "cd /var/www" | ||
- | cd /var/www | ||
- | |||
- | echo "tar update start." | ||
- | tar uf /root/doku_latest.tar ./doku | ||
- | echo "tar update done." | ||
- | |||
- | echo "cd /root" | ||
- | cd /root | ||
- | |||
- | echo "gzip start." | ||
- | gzip -c doku_latest.tar > doku_latest.tar.gz | ||
- | echo "gzip done." | ||
- | ls -l doku_latest.tar | ||
- | ls -l doku_latest.tar.gz | ||
- | |||
- | echo "sftp upload start." | ||
- | sftp -oPort=11122 backup@example.net<<__EOL__ | ||
- | put doku_latest.tar.gz | ||
- | __EOL__ | ||
- | : | ||
- | echo "sftp upload done." | ||
- | echo "*** dokuwiki backup completed. ***"</code> | ||
- | - [マスター側] crontabに仕込む | ||
- | * <code>echo "15 5 * * * root /root/dokuwiki_backup.sh" >> /etc/crontab</code> | ||
- | - [スレーブ側] バックアップファイルを自動展開するスクリプトを書く | ||
- | * <code>#!/bin/sh | ||
- | BACKUP=doku_latest | ||
- | echo "cd /home/yuki ..." | ||
- | cd /home/yuki | ||
- | echo "cd done." | ||
- | |||
- | if [ -s ${BACKUP}.tar.gz ]; then | ||
- | |||
- | echo "gunzip ${BACKUP}.tar.gz ..." | ||
- | gunzip ${BACKUP}.tar.gz | ||
- | echo "gunzip done." | ||
- | |||
- | echo "mv ${BACKUP}.tar /tmp/ ..." | ||
- | mv ${BACKUP}.tar /tmp/ | ||
- | echo "mv done." | ||
- | |||
- | echo "cd /var/www/ainoniwa ..." | ||
- | cd /var/www/ainoniwa | ||
- | echo "cd done." | ||
- | |||
- | echo "update start..." | ||
- | sudo -u apache tar xf /tmp/${BACKUP}.tar | ||
- | echo "update done." | ||
- | |||
- | else | ||
- | |||
- | echo "backup file not found." | ||
- | |||
- | fi</code> | ||
- | - [スレーブ側] DNSの切り替わり監視スクリプトに書き加えて、crontabに仕込む | ||
- | * 略 | ||
- | * DNSが切り替わった場合に、Dokuwikiの内容だけは保障出来るようになる。 | ||
- | |||
- | |||
- | |||
- | ===== LDAPのバックアップ ==== | ||
- | LDAPの登録情報消えるとそれはもうやる気が失せる。 | ||
- | |||
- | - LDAP構成ファイルをとりあえず何も考えずにコピーするスクリプトを書く | ||
- | * <code> | ||
- | #!/bin/sh | ||
- | echo "*** openldap backup start. ***" | ||
- | |||
- | echo "cd /var/db/openldap-data/" | ||
- | cd /var/db/openldap-data/ | ||
- | |||
- | echo "tar zcvf ldap_backup-`/bin/date '+%Y%m'`.tar.gz DB_CONFIG alock *.bdb log.*" | ||
- | tar zcvf ldap_backup-`/bin/date '+%Y%m'`.tar.gz DB_CONFIG alock *.bdb log.* | ||
- | echo "tar done." | ||
- | |||
- | echo "mv ldap_backup-`/bin/date '+%Y%m'`.tar.gz /mnt/lib_01/server/ldap_remilia/" | ||
- | mv ldap_backup-`/bin/date '+%Y%m'`.tar.gz /mnt/lib_01/server/ldap_remilia/ | ||
- | echo "mv done." | ||
- | |||
- | if [ -s /mnt/lib_01/server/ldap_remilia/ldap_backup-`/bin/date '+%Y%m'`.tar.gz ]; then | ||
- | echo "*** openldap backup completed. ***" | ||
- | else | ||
- | echo "!!! openldap backup failed. !!!" | ||
- | fi</code> | ||
- | - crontabに仕込む | ||
- | - 必要な時にぶちまける |