Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
BackupPCのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
BackupPC
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:バックアップ]] [[en:BackupPC]] '''BackupPC''' は Unix, Linux, Windows, macOS の PC やデスクトップあるいはノートパソコンからサーバーまで様々なディスクをバックアップすることができる構成なエンタープライズ級のシステムです。BackupPC は細かい設定ができる上にインストールや管理が簡単になっています。 ハードディスクや RAID システムの費用は下がっているとはいえ、マシンのデータをサーバーのローカルディスクやネットワークストレージにバックアップすることは実践的かつ費用対効果からみても利益のあることです。完全なバックアップソリューションとして、またはサーバーを定期的にバックアップするアーカイブとして利用することができます。 == インストール == {{Pkg|backuppc}} を [[インストール]] してください。 トランスポートとして [[rsync]] を使いたい場合は {{Pkg|rsync}} と {{Pkg|perl-file-rsyncp}} を、CGI インターフェイスに使用状況データを表示したい場合は {{Pkg|rrdtool}} をインストールしてください。 そして {{ic|backuppc.service}}を [[起動/有効化]] します。 === データディレクトリを別のパーティションに配置する === BackupPC プールはデフォルトでは {{ic|/var/lib/backuppc}} の下に保存され、backuppc ユーザのホームディレクトリとしても機能します。 このパスは、{{ic|/etc/backuppc/config.pl}} 内の {{ic|<nowiki>$Conf{TopDir}</nowiki>}} エントリで変更できます。 典型的な理由としては、システムを高速だが高価で小さい [[SSD]] に保存していて、バックアップを従来のハードディスクに保存する必要がある場合や、[[LVM]] で管理されたパーティションにバックアッププールを保存して、需要の変化に応じてパーティションのサイズを変更できるようにしたい場合などがあります。 ドキュメントでは {{ic|<nowiki>$Conf{TopDir}</nowiki>}} エントリを変更せず、代わりにシンボリックリンクを使用することを提案しています。しかし、backuppc のパッケージアップグレードは、{{ic|/var/lib/backuppc}} やデフォルトのサブディレクトリ {{ic|cpool}}、{{ic|pc}}、{{ic|pool}} のシンボリックリンクを、'''何の警告もなしに''' 空のディレクトリに置き換えるので、注意してください。 従って、シンボリックリンクの代わりに [[fstab]] でバインドマウントを使うか、{{ic|/etc/backuppc/config.pl}} の推奨を意図的に無視して {{ic|<nowiki>$Conf{TopDir}</nowiki>}} を変更することを推奨します。代わりに、以下のような [[pacman]] の [[pacman#フック|トランザクションフック]] を使ってください (シェルスクリプトを [[ヘルプ:読み方#実行可能属性の付与|実行可能]] にするのを忘れないでください): {{hc|/etc/pacman.d/hooks/backuppc-restore-symlinks-post.hook|<nowiki> [Trigger] Operation = Upgrade Type = Package Target = backuppc [Action] Description = Restore symlinks for BackupPC pool directories When = PostTransaction Exec = /etc/pacman.d/hooks/backuppc-restore-symlinks-post.sh</nowiki>}} {{hc|/etc/pacman.d/hooks/backuppc-restore-symlinks-post.sh|<nowiki> #!/usr/bin/bash if [ ! -d /tmp/backuppc-symlinks-cache ]; then exit 0 fi if [ -L /tmp/backuppc-symlinks-cache/backuppc ]; then rmdir /var/lib/backuppc/{cpool,pc,pool,} mv /tmp/backuppc-symlinks-cache/backuppc /var/lib/ echo "==> Restored /var/lib/backuppc => $(readlink /var/lib/backuppc)" fi for dir in cpool pc pool; do if [ -L /tmp/backuppc-symlinks-cache/$dir ]; then rmdir /var/lib/backuppc/$dir mv /tmp/backuppc-symlinks-cache/$dir /var/lib/backuppc/ echo "==> Restored /var/lib/backuppc/${dir} => $(readlink /var/lib/backuppc/$dir)" fi done if [ -f /tmp/backuppc-symlinks-cache/was-running ]; then echo '==> BackupPC service was stopped for upgrade.' echo '==> Check the configuration and run `systemctl start backuppc.service` to restart the service.' rm -f /tmp/backuppc-symlinks-cache/was-running fi rmdir --ignore-fail-on-non-empty /tmp/backuppc-symlinks-cache &>/dev/null</nowiki>}} {{hc|/etc/pacman.d/hooks/backuppc-restore-symlinks-pre.hook|<nowiki> [Trigger] Operation = Upgrade Type = Package Target = backuppc [Action] Description = Stash symlinks for BackupPC pool directories When = PreTransaction Exec = /etc/pacman.d/hooks/backuppc-restore-symlinks-pre.sh</nowiki>}} {{hc|/etc/pacman.d/hooks/backuppc-restore-symlinks-pre.sh|<nowiki> #!/usr/bin/bash if systemctl is-active backuppc.service &>/dev/null; then systemctl stop backuppc.service mkdir -p /tmp/backuppc-symlinks-cache touch /tmp/backuppc-symlinks-cache/was-running fi for dir in /var/lib/backuppc/{cpool,pc,pool,}; do if [ -L $dir ]; then mkdir -p /tmp/backuppc-symlinks-cache mv $dir /tmp/backuppc-symlinks-cache fi done</nowiki>}} == 設定 == === Apache の設定 === BackupPC には簡単に制御することができるウェブインターフェイスが備わっています。Apache と mod_perl を使用するか C のラッパーを使用して使うことができます。[[lighttpd]] など他のウェブサーバーでも動作します。 {{Pkg|apache}} パッケージを[[インストール]]してください。 ==== Apache の設定の編集 ==== BackupPC のウェブ UI は backuppc ユーザーで動作させる必要がありますが、通常 Apache は http ユーザーで動作します。ユーザーを変更する方法は複数あります。BackupPC の UI を表示するためだけに Apache を使用する場合と、通常の http ユーザーで他のウェブサイトも公開する場合の例を以下に示します。 単一目的で Apache を設定する方が簡単ではありますが柔軟性に欠けます。 ===== 一般的な設定 ===== {{ic|/etc/backuppc/config.pl}} を編集して管理者の名前を設定してください: $Conf{CgiAdminUsers} = 'admin'; そして users ファイルを追加して管理者のパスワードを設定してください: # htpasswd -c /etc/backuppc/backuppc.users admin BackupPC-Webfrontend は最初ローカルホストからしかアクセスできないように設定されています。ネットワーク内の全てのマシンからアクセスできるようにしたい場合、{{ic|/etc/httpd/conf/extra/backuppc.conf}} を編集してください。以下の行を: Require ip 127.0.0.1 以下のように変更: Require ip 127.0.0.1 192.168.0 192.168.0 はアクセス権を与えたい適切な IP アドレスに置き換えてください。以下のセクションのどちらかの設定を行ったら、Apache のサービスを(再)起動してください。 ===== 単一目的の Apache の設定 ===== {{AUR|mod_perl}} パッケージを[[インストール]]してください。 Apache の設定ファイルを編集して mod_perl をロードし、backuppc ユーザーで Apache を実行して {{ic|/etc/httpd/conf/extra/backuppc.conf}} を読み込みます: {{hc|/etc/httpd/conf/httpd.conf| LoadModule perl_module modules/mod_perl.so User backuppc Group backuppc Include conf/extra/backuppc.conf }} ===== 多目的の Apache の設定 ===== 上記のように Apache のユーザーとグループを全体的に変更するのではなく、BackupPC の CGI スクリプトだけを backuppc ユーザーで動作させて他のファイルはデフォルトユーザーを使うようにします。外部の mod_perl を使うかわりに mod_cgi を使って C で書かれたラッパーを呼び出します。ラッパーから BackupPC のスクリプトを実行するのに {{Pkg|perl}} をインストールする必要があります。 Apache が CGI プログラムを動作させることができる状態であることを確認して、{{ic|/etc/httpd/conf/extra/backuppc.conf}} を読み込んで BackupPC の設定を使用するようにしてください: {{hc|/etc/httpd/conf/httpd.conf| LoadModule cgi_module modules/mod_cgi.so ... Include conf/extra/backuppc.conf}} ====== ウェブサーバーのユーザーと suid の問題 ====== 現在の BackupPC の設定だと、ウェブサーバーを backuppc ユーザーで動作させる必要があり、他の用途でウェブサーバーを使っている場合に問題になります。昔は Perl スクリプトに suid を設定していましたが、セキュリティの問題が原因で数年前に禁止されました。回避策として perl-suid を使う方法がありましたが、同じく最近になって禁止されました。suid ビットを使ってスクリプトを安全に動作させることは不可能です。ランチャーとして suid を使うシンプルなバイナリプログラムを使うことで適切なユーザーで backuppc の Perl スクリプトを実行できます。Perl スクリプトが別環境に分離されるため安全です。 オリジナルの backuppc の CGI を以下の C コードプログラムに置き換えて backuppc の CGI は別の場所に移動する必要があります。 実際の CGI である {{ic|/usr/share/backuppc/cgi-bin/BackupPC_Admin}} は lib ディレクトリの {{ic|/usr/share/backuppc/lib/real-BackupPC_Admin.cgi}} に移動してください。 以下のコードを ''wrapper.c'' というファイル名で保存してください (必要に応じて CGI のパスを修正してください): #include <unistd.h> #define REAL_PATH "/usr/share/backuppc/lib/real-BackupPC_Admin.cgi" int main(ac, av) char **av; { execv(REAL_PATH, av); return 0; } そして以下のコマンドでコンパイルしてください: $ gcc -o BackupPC_Admin wrapper.c 作成されたバイナリ {{ic|BackupPC_Admin}} を cgi-bin ディレクトリに配置してバイナリ CGI の所有者を {{ic|backuppc:http}} に変更して suid ビットを設定してください: # chown backuppc:http /usr/share/backuppc/cgi-bin/BackupPC_Admin # chmod 4750 /usr/share/backuppc/cgi-bin/BackupPC_Admin 元の Perl スクリプトに suid ビットを設定していた場合は解除してください: # chmod 0755 /usr/share/backuppc/lib/real-BackupPC_Admin.cgi これでウェブサーバーを通常ユーザーで実行しつつバックアップを適切に実行できるようになりました。 === nginx の設定 === {{Pkg|fcgiwrap}} をインストールして {{ic|fcgiwrap.socket}} を[[起動]]・[[有効化]]してください。 以下のサーバー設定を作成: {{hc|/etc/nginx/sites-available/backuppc|<nowiki> server { listen <your_server_port>; server_name <your_server_name>; root /usr/share/backuppc/html; index /index.cgi; access_log /var/log/nginx/backuppc.access.log; error_log /var/log/nginx/backuppc.error.log; location / { allow 127.0.0.1/32; # allow 192.168.0.0/24; deny all; # auth_basic "Backup"; # auth_basic_user_file conf/backuppc.users; } location /backuppc { alias /usr/share/backuppc/html/; } location ~\.cgi$ { include fastcgi_params; fastcgi_pass unix:/run/fcgiwrap.sock; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_USER $remote_user; fastcgi_param SCRIPT_FILENAME /usr/share/backuppc/cgi-bin/BackupPC_Admin; } } </nowiki>}} 上記のファイルを作成したら sites-enabled に対してシンボリックリンクを作成してください: # ln -s /etc/nginx/sites-available/backuppc /etc/nginx/sites-enabled systemd の {{ic|fcgiwrap.service}} ファイルを編集して fcgiwrap の実行ユーザーを backuppc に変更してください。 === lighttpd の設定 === {{hc|/etc/lighttpd/lighttpd.conf|<nowiki> server.port = 81 server.username = "backuppc" server.groupname = "backuppc" server.document-root = "/srv/http" server.errorlog = "/var/log/lighttpd/error.log" dir-listing.activate = "enable" index-file.names = ( "index.html", "index.php", "index.cgi" ) mimetype.assign = ( ".html" => "text/html", ".txt" => "text/plain", ".jpg" => "image/jpeg", ".png" => "image/png", "" => "application/octet-stream" ) server.modules = ("mod_alias", "mod_cgi", "mod_auth", "mod_access" ) alias.url = ( "/BackupPC_Admin" => "/usr/share/backuppc/cgi-bin/BackupPC_Admin" ) alias.url += ( "/backuppc" => "/usr/share/backuppc/html" ) cgi.assign += ( ".cgi" => "/usr/bin/perl" ) cgi.assign += ( "BackupPC_Admin" => "/usr/bin/perl" ) auth.backend = "plain" auth.backend.plain.userfile = "/etc/lighttpd/passwd" auth.require = ( "/BackupPC_Admin" => ( "method" => "basic", "realm" => "BackupPC", "require" => "user=admin" ) )</nowiki>}} {{hc|/etc/lighttpd/passwd|admin:''yourpassword''}} ログファイルを作成: # touch /var/log/lighttpd/error.log # chown backuppc:backuppc /var/log/lighttpd/error.log === 管理ページへアクセス === 管理ページにアクセスするまえに BackupPC の設定を編集できるユーザーやグループを指定する必要があります: {{hc|/etc/backuppc/config.pl|<nowiki> $Conf{CgiAdminUserGroup} = '<authorized groups>'; $Conf{CgiAdminUsers} = '<authorized users>'; # <-- set to '*' if the webserver is not autenticating users </nowiki>}} 設定したら http://localhost/BackupPC_Admin あるいは http://''your_backuppc_server_ip''/BackupPC_Admin を開いてください。 == トラブルシューティング == === ウェブサイトの表示がおかしい === Apache のディレクティブが原因でウェブインターフェイスが正しく表示されない場合があります。そのような場合、クライアントから .htaccess や .htpasswd を見えないようにしている {{ic|/etc/httpd/conf/httpd.conf}} の設定を変更するか、{{ic|/usr/share/backuppc/html}} ディレクトリの名前を {{ic|/usr/share/backuppc/files}} に変更して新しいパスにあわせて {{ic|/etc/httpd/conf/extra/backuppc.conf}} を以下のように更新してください: {{hc|/etc/httpd/conf/extra/backuppc.conf| Alias /BackupPC/images /usr/share/BackupPC/files/ }} == 参照 == * [http://backuppc.sourceforge.net/index.html BackupPC ホームページ] * [http://backuppc.sourceforge.net/faq/BackupPC.html BackupPC ドキュメント]
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
BackupPC
に戻る。
検索
検索
BackupPCのソースを表示
話題を追加