Linux(CentOS)系のバックアップは、最近では、イメージバックアップがメインなのか・・・
いまでも、tarやafioを使っています・・・(笑)
なぜ、tar よりも afioか
# tar czvf /tmp/xxx.tar.gz /var/www/html
↑というふうに、tarコマンドで、バックアップをとっていたときに、あるファイルが壊れていたら・・・
# tar xzvf /tmp/xxx.tar.gz
と、解凍する際に、壊れたファイルで、止まってしまいます。
たった1個のファイルのために、多数のファイルが解凍できない・・・。という障害を
何度も苦い経験しました・・・
管理者なら、経験する、「いやな汗」を経験しました・・・(笑)
そこで、afioの出番・・・
afioは、壊れたファイルは、無視して、それ以外のファイルを解凍してくれます。
afio インストール
#ls -al afio-2.5.tgz -rw-r--r-- 1 xxxx xxxx 460800 Feb 2 XX:XX afio-2.5.tgz
# tar xvf afio-2.5.tgz # cd afio-2.5 # make # make install cp afio /usr/local/bin cp afio.1 /usr/share/man/man1 # /usr/local/bin/afio -h Usage: [filename generator] | afio -o [options] archive : write archive afio -i [options] archive : install archive afio -t [options] archive : list table-of-contents of archive afio -r [options] archive : verify archive against filesystem Frequently used options: General: -v : verbose -Z : with -o: gzip files when writing them to the archive, with -i/t/r: handle archive written with -Z option -5 : abort instead of creating archive incompatible with cpio Tape: -s [volsize] : size of volume, can have suffix k or m or g -b [blocksize] : block size (default is 5120) -c [count] : buffer count blocks between doing I/O Install: -n : protect newer files -k : skip corrupt data at beginning Select: -y [pattern] : only process files matching pattern -Y [pattern] : do not process files matching pattern Version 2.5 dated 21 Dec 2003
afioコマンド
# /usr/bin\find /var/www/html/ |/usr/local/bin/afio -oZ /tmp/www.backup.afz # ls -al /tmp/www.backup.afz -rw-r--r-- 1 root root 13399040 2月 2 XX:XX 2020 /tmp/www.backup.afz
↑/var/www/html 以下のファイルすべてを、/tmp/www.backup.afz
に圧縮します。「Z」は、圧縮オプションです。
# /usr/local/bin/afio -t /tmp/www.backup.afz
↑圧縮されたファイルの中身をチェックしてみます。
var/www/html var/www/html/wp-signup.php.z var/www/html/wp-blog-header.php.z var/www/html/wp-trackback.php.z var/www/html/wp-includes var/www/html/wp-includes/class-wp-site-query.php.z var/www/html/wp-includes/class-wp-user-query.php.z
最後の「z」は、圧縮しているという表示です。
findのオプションとの組み合わせ
afioは、findのオプションと組み合わせると、多彩なバックアップが出来ます。
# /usr/bin/find /var/www/html/ -mtime 2 |/usr/local/bin/afio -oZ /tmp/www.backup.afz
↑2日以内に更新されたファイルをバックアップ
# /usr/bin/find /var/www/html/ -mtime 2 |/bin/egrep -v 'jpg$' |/usr/local/bin/afio -oZ /tmp/www.backup.afz
↑2日以内に更新されたファイルで、かつ、jpgで終わるファイルを除外してバックアップ。
afioファイルの解凍
# afio -ivZ /tmp/www.backup.afz var/www/html/wp-content/themes/twentyseventeen/assets/js/navigation.js -- uncompressed var/www/html/wp-content/themes/twentyseventeen/assets/js/html5.js -- uncompressed var/www/html/wp-content/themes/twentyseventeen/assets/js/customize-controls.js -- uncompressed var/www/html/wp-content/themes/twentyseventeen/assets/js/skip-link-focus-fix.js -- uncompressed var/www/html/wp-config-sample.php -- uncompressed var/www/html/license.txt -- uncompressed afio: 11m+672k+850 bytes read in 0 seconds. The operation was successful.
と解凍が出来ました。(2020/03/20 修正)
# afio -ivZ -y '*.php' /tmp/www.backup.nonecss.afz
↑「-y」オプションで、ファイル名を指定して、目的のものだけを解凍することが出来ます。(2020/03/20 修正)
afioファイルの中身を見てみる
バックアップしたファイル、どんなものがあるか・・・
バックアップした、afioファイル、実際に何が保存されているか・・・
「-t」オプションを指定して、afioファイルの中身をチェックします。
# afio -tvZ xxxxxx.afz drwxr-xr-x 1 root root Apr 6 10:54:39 2020 etc -rw-r--r-- 1 root root 93 Apr 6 10:54:03 2020 etc/subuid -- compressed ---------- 1 root root 282 Apr 6 10:54:03 2020 etc/gshadow -- compressed -rw-r--r-- 1 root root 366 Apr 6 10:54:38 2020 etc/group -- compressed -rw-r--r-- 1 root root 93 Apr 6 10:54:03 2020 etc/subgid -- compressed -rw-r--r-- 1 root root 632 Apr 6 10:54:14 2020 etc/passwd -- compressed ---------- 1 root root 620 Apr 6 10:54:03 2020 etc/shadow -- compressed
と、中身を見ることが出来ます。
(2020/04/06 追記)