差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
次のリビジョン | 前のリビジョン | ||
home:management:backup:start [2011/11/06 19:11] yuki 作成 |
home:management:backup:start [2021/09/04 20:26] yuki 削除 |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
====== バックアップ ====== | ====== バックアップ ====== | ||
+ | 基本思想は極力デフォルト機能で何とかする。 | ||
- | ===== Web編 ===== | + | * [[.:web:]] |
- | ==== Dokuwikiのバックアップ ==== | + | ===== Webコンテンツのバックアップ ===== |
+ | |||
+ | ==== Dokuwiki ==== | ||
+ | Dokuwikiの場合は、ファイルバックアップと同時にVPSに送付して自宅が死んだ際に参照出来るようにもしておく。 | ||
- [マスター側] スクリプトでSSH実行出来るように公開鍵登録をしておく | - [マスター側] スクリプトでSSH実行出来るように公開鍵登録をしておく | ||
ライン 11: | ライン 15: | ||
- [マスター側] こんな感じのスクリプトを置く。 | - [マスター側] こんな感じのスクリプトを置く。 | ||
* <code>#!/bin/sh | * <code>#!/bin/sh | ||
+ | #:<<: | ||
+ | echo "*** dokuwiki backup start. ***" | ||
+ | echo "cd /var/www" | ||
cd /var/www | cd /var/www | ||
- | tar uf /root/dokuwiki_backup.tar ./doku | + | |
+ | echo "tar update start." | ||
+ | tar uf /root/doku_latest.tar ./doku | ||
+ | echo "tar update done." | ||
+ | |||
+ | echo "cd /root" | ||
cd /root | cd /root | ||
- | gzip -c dokuwiki_backup.tar > dokuwiki_backup.tar.gz | + | |
- | sftp -oPort=6622 backup@example.net<<__EOL__ | + | echo "gzip start." |
- | put dokuwiki_backup.tar.gz | + | gzip -c doku_latest.tar > doku_latest.tar.gz |
- | __EOL__</code> | + | 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に仕込む | - [マスター側] crontabに仕込む | ||
* <code>echo "15 5 * * * root /root/dokuwiki_backup.sh" >> /etc/crontab</code> | * <code>echo "15 5 * * * root /root/dokuwiki_backup.sh" >> /etc/crontab</code> | ||
- | - [スレーブ側] 定期的にバックアップファイルの存在を確認して、ファイルが存在したら展開するスクリプトを書く | + | - [スレーブ側] バックアップファイルを自動展開するスクリプトを書く |
- | * <code>ちょっと見せられないよ!</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の内容だけは保障出来るようになる。 | * 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に仕込む | ||
+ | - 必要な時にぶちまける |