Misc/Webサイトの自動バックアップ

2017-06-14 (水) 06:49:17 (2500d)

前準備

NET:Pingインストール

$ wget http://ftp.cpan.jp/authors/id/B/BB/BBB/Net-Ping-2.31.tar.gz
$ tar xzvf Net-Ping-2.31.tar.gz
$ cd Net-Ping-2.31
$ perl Makefile.PL
$ make
$ su
# make install

sudoセットアップ

実行スクリプト

メイン - backup_web.pl

ダウンロード先が生きているかどうかチェックしてからDLを行う。icmpを投げるためにrootで実行する必要がある。

  • backup_web.pl
#!/usr/bin/perl -w

use Net::Ping;

my $host="";
my $timeout=1;

my $p = Net::Ping->new("icmp");

$host="hoge.fuge";
if($p->ping($host, $timeout)){
    print "$host is alive.\n";
    system("sudo -u foo dlscript.sh");
} else {
    print "$host dead.\n";
}

$p->close();

各サイト用

  • wgetの場合
#!/bin/sh

#/*  G L O B A L S  **************************************************/
PATH=/bin:/usr/local/bin:/sbin:/home/jp/bin:/home/foo/bin/backup:/usr/bin:

cd /home/foo/public_html/hoge
wget -r -nH -N ftp://foo:foo-pass@hoge.fuge/
  • rsyncの場合
#!/bin/sh

#/*  G L O B A L S  **************************************************/
PATH=/bin:/usr/local/bin:/sbin:/home/jp/bin:/home/foo/bin/backup:/usr/bin:

cd /home/foo/public_html/hoge
rsync -avzb -e ssh --delete -r foo@hoge.fuge:\~/ .

cron設定

/bin/echo pass | /usr/bin/sudo backup_web.pl > /dev/null 2> /dev/null

自分の場合、午前4時にサーバー自身のバックアップが走るので午前2時頃の実行が妥当か…

参考リンク

GNU Wget 1.9 Manual: タイムスタンプ Manpage of sudo


注意)このバージョンのsafariではjavascriptがうまく動作しないので、recaptchaはページ切り替え版を利用しています。
リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS