CentOS7にBaculaサーバーをインストールする方法
序章
Baculaは、コンピュータシステムのバックアップを作成し、データ回復を実行できるオープンソースのネットワークバックアップソリューションです。 非常に柔軟で堅牢であるため、構成が少し面倒ですが、多くの状況でのバックアップに適しています。 データ損失からの復旧は多くの場合、ディザスタリカバリ計画の重要な部分であるため、バックアップシステムはほとんどのサーバーインフラストラクチャの重要なコンポーネントです。
このチュートリアルでは、CentOS7サーバーにBaculaのサーバーコンポーネントをインストールして構成する方法を示します。 ローカルバックアップを作成する毎週のジョブを実行するようにBaculaを構成します(つまり、 自身のホストのバックアップ)。 これ自体は、Baculaの特に魅力的な使用法ではありませんが、他のサーバーのバックアップを作成するための良い出発点を提供します。 バックアップクライアント。 このシリーズの次のチュートリアルでは、Baculaクライアントをインストールして構成し、Baculaサーバーを構成することにより、他のリモートサーバーのバックアップを作成する方法について説明します。
代わりにUbuntu14.04を使用したい場合は、次のリンクをたどってください: Ubuntu14.04にBaculaサーバーをインストールする方法。
前提条件
CentOS 7サーバーでスーパーユーザー(sudo)アクセス権が必要です。 また、サーバーには、いつでも保持する予定のすべてのバックアップ用に十分なディスク容量が必要です。
DigitalOceanを使用している場合は、Baculaサーバーと同じデータセンターリージョンにあるすべてのクライアントサーバーでプライベートネットワークを有効にする必要があります。 これにより、サーバーがバックアップを実行するときにプライベートネットワークを使用できるようになり、ネットワークのオーバーヘッドが削減されます。
サーバーのプライベートFQDNを使用するようにBaculaを構成します。 bacula.private.example.com
. DNSを設定していない場合は、代わりに適切なIPアドレスを使用してください。 プライベートネットワークを有効にしていない場合は、このチュートリアルのすべてのネットワーク接続情報を、問題のサーバーが到達可能なネットワークアドレスに置き換えてください(例: パブリックIPアドレスまたはVPNトンネル)。
最後の仮定は、SELinuxが無効になっているか、SELinux関連の問題を自分でトラブルシューティングできることです。
Baculaのコンポーネントの概要を見てみましょう。
Baculaコンポーネントの概要
Baculaはいくつかのソフトウェアコンポーネントで構成されていますが、サーバークライアントバックアップモデルに従います。 説明を簡単にするために、個々のBaculaコンポーネントよりも、バックアップサーバーとバックアップクライアントに焦点を当てます。 それでも、さまざまなBaculaコンポーネントについて大まかな知識を持っていることが重要なので、ここでそれらについて説明します。
Bacula server (これを「バックアップサーバー」とも呼びます)には、次のコンポーネントがあります。
- Bacula Director(DIR):ファイルおよびストレージデーモンによって実行されるバックアップおよび復元操作を制御するソフトウェア
- ストレージデーモン(SD):バックアップに使用されるストレージデバイスで読み取りと書き込みを実行するソフトウェア
- カタログ:バックアップされたファイルのデータベースを維持するサービス。 データベースは、MySQLやPostgreSQLなどのSQLデータベースに保存されます
- Bacula Console:バックアップ管理者がBacula Directorと対話し、制御できるようにするコマンドラインインターフェイス
Note: The Bacula server components don't need to run on the same server, but they all work together to provide the backup server functionality.
Bacula client 、すなわち バックアップされるサーバーは、ファイルデーモン(FD)コンポーネントを実行します。 ファイルデーモンは、バックアップされるデータへのアクセスをBaculaサーバー(具体的にはDirector)に提供するソフトウェアです。 これらのサーバーを「バックアップクライアント」または「クライアント」とも呼びます。
はじめに述べたように、独自のファイルシステムのバックアップを作成するようにバックアップサーバーを構成します。 これは、バックアップサーバーがバックアップクライアントでもあり、ファイルデーモンコンポーネントを実行することを意味します。
インストールを始めましょう。
BaculaとMySQLをインストールする
Baculaは、MySQLやPostreSQLなどのSQLデータベースを使用して、バックアップカタログを管理します。 このチュートリアルでは、MySQLのドロップイン代替品であるMariaDBを使用します。
yumを使用してBaculaおよびMariaDBサーバーパッケージをインストールします。
- sudo yum install -y bacula-director bacula-storage bacula-console bacula-client mariadb-server
インストールが完了したら、次のコマンドでMySQLを起動する必要があります。
- sudo systemctl start mariadb
MySQL(MariaDB)がインストールされて実行されたので、次のスクリプトを使用してBaculaデータベースのユーザーとテーブルを作成しましょう。
- /usr/libexec/bacula/grant_mysql_privileges
- /usr/libexec/bacula/create_mysql_database -u root
- /usr/libexec/bacula/make_mysql_tables -u bacula
次に、いくつかの危険なデフォルトを削除し、データベースシステムへのアクセスを少しロックダウンする簡単なセキュリティスクリプトを実行します。 次のコマンドを実行して、インタラクティブスクリプトを開始します。
- sudo mysql_secure_installation
プロンプトで、現在のルートパスワードの入力を求められます。 MySQLをインストールしたばかりなので、MySQLがない可能性が高いので、Enterキーを押して空白のままにします。 次に、rootパスワードを設定するかどうかを尋ねるプロンプトが表示されます。 さあ、ヒット Enter
、パスワードを設定します。 残りの質問については、単に Enter
各プロンプトをキー入力して、デフォルト値を受け入れます。 これにより、一部のサンプルユーザーとデータベースが削除され、リモートルートログインが無効になり、これらの新しいルールが読み込まれるため、MySQLは行った変更をすぐに尊重します。
次に、Baculaデータベースユーザーのパスワードを設定する必要があります。
ルートMySQLユーザーとしてMySQLコンソールに入ります。
- mysql -u root -p
プロンプトで、設定したMySQLルートパスワードを入力します。
次に、Baculaデータベースユーザーのパスワードを設定します。 このコマンドを使用しますが、強調表示された「bacula_db_password」を強力なパスワードに置き換えます。
- UPDATE mysql.user SET Password=PASSWORD('bacula_db_password') WHERE User='bacula';
- FLUSH PRIVILEGES;
ここで完了したら、MySQLプロンプトを終了します。
- exit
MariaDBが起動時に開始できるようにします。 これを行うには、次のコマンドを使用します。
- sudo systemctl enable mariadb
MySQLライブラリを使用するようにBaculaを設定する
デフォルトでは、BaculaはPostgreSQLライブラリを使用するように設定されています。 MySQLを使用しているため、代わりにMySQLライブラリを使用するように設定する必要があります。
次のコマンドを実行します。
- sudo alternatives --config libbaccats.so
次のプロンプトが表示されます。 1(MySQL)を入力してください:
OutputThere are 3 programs which provide 'libbaccats.so'.
Selection Command
-----------------------------------------------
1 /usr/lib64/libbaccats-mysql.so
2 /usr/lib64/libbaccats-sqlite3.so
*+ 3 /usr/lib64/libbaccats-postgresql.so
Enter to keep the current selection[+], or type selection number: 1
これで、Baculaサーバー(およびクライアント)コンポーネントがインストールされました。 バックアップと復元のディレクトリを作成しましょう。
バックアップディレクトリと復元ディレクトリを作成する
Baculaには、バックアップアーカイブを保存するための backup ディレクトリと、復元されたファイルが配置されるrestoreディレクトリが必要です。 システムに複数のパーティションがある場合は、十分なスペースがあるパーティションにディレクトリを作成してください。
これらの両方の目的のために新しいディレクトリを作成しましょう。
- sudo mkdir -p /bacula/backup /bacula/restore
baculaプロセス(およびスーパーユーザー)のみがこれらの場所にアクセスできるように、ファイルのアクセス許可を変更する必要があります。
- sudo chown -R bacula:bacula /bacula
- sudo chmod -R 700 /bacula
これで、BaculaDirectorを構成する準備が整いました。
BaculaDirectorを設定する
Baculaには、正しく機能するために独立して構成する必要のあるいくつかのコンポーネントがあります。 構成ファイルはすべて、 /etc/bacula
ディレクトリ。
BaculaDirectorから始めましょう。
お気に入りのテキストエディタでBaculaDirector構成ファイルを開きます。 viを使用します:
- sudo vi /etc/bacula/bacula-dir.conf
Directorリソースの構成
Directorリソースを見つけて、リッスンするように構成します 127.0.0.1
(localhost)、追加することにより DirAddress
ここに示されている行:
Director { # define myself
Name = bacula-dir
DIRport = 9101 # where we listen for UA connections
QueryFile = "/etc/bacula/query.sql"
WorkingDirectory = "/var/spool/bacula"
PidDirectory = "/var/run"
Maximum Concurrent Jobs = 1
Password = "@@DIR_PASSWORD@@" # Console password
Messages = Daemon
DirAddress = 127.0.0.1
}
次に、ファイルの残りの部分に移動します。
ローカルジョブの構成
Baculaジョブは、バックアップと復元のアクションを実行するために使用されます。 ジョブリソースは、クライアントの名前、バックアップまたは復元するFileSetなど、特定のジョブが実行する内容の詳細を定義します。
ここでは、ローカルファイルシステムのバックアップを実行するために使用されるジョブを構成します。
Director構成で、「BackupClient1」という名前の Job リソースを見つけます(「BackupClient1」を検索します)。 の値を変更します Name
「BackupLocalFiles」に変換すると、次のようになります。
Job {
Name = "BackupLocalFiles"
JobDefs = "DefaultJob"
}
次に、「RestoreFiles」という名前の Job リソースを見つけます(「RestoreFiles」を検索します)。 このジョブでは、次の2つの変更を行います。の値を更新する Name
「RestoreLocalFiles」に、およびの値 Where
「/bacula/restore」に移動します。 次のようになります。
Job {
Name = "RestoreLocalFiles"
Type = Restore
Client=BackupServer-fd
FileSet="Full Set"
Storage = File
Pool = Default
Messages = Standard
Where = /bacula/restore
}
これにより、RestoreLocalFilesジョブがファイルを復元するように構成されます。 /bacula/restore
、前に作成したディレクトリ。
ファイルセットの構成
Bacula FileSetは、バックアップ選択からincludeまたはexcludeファイルにファイルまたはディレクトリのセットを定義し、ジョブによって使用されます。
「FullSet」という名前のFileSetリソースを見つけます(「#バックアップするファイルのリスト」というコメントの下にあります)。 ここでは、3つの変更を行います。(1)バックアップを圧縮するためにgzipを使用するオプションを追加し、(2)インクルードファイルをから変更します。 /usr/sbin
に /
、および(3)追加 File = /bacula
[除外]セクションの下。 コメントを削除すると、次のようになります。
FileSet {
Name = "Full Set"
Include {
Options {
signature = MD5
compression = GZIP
}
File = /
}
Exclude {
File = /var/lib/bacula
File = /proc
File = /tmp
File = /.journal
File = /.fsck
File = /bacula
}
}
「フルセット」ファイルセットに加えた変更を見てみましょう。 まず、バックアップアーカイブを作成するときにgzip圧縮を有効にしました。 第二に、私たちは含まれています /
、すなわち バックアップするルートパーティション。 第三に、私たちは除外しています /bacula
Baculaのバックアップと復元されたファイルを冗長にバックアップしたくないからです。
Note: If you have partitions that are mounted within /, and you want to include those in the FileSet, you will need to include additional File records for each of them.
バックアップジョブで「フルセット」などの幅広いファイルセットを常に使用する場合、バックアップの選択がより具体的である場合よりも、バックアップに必要なディスク容量が増えることに注意してください。 たとえば、カスタマイズされた構成ファイルとデータベースのみを含むFileSetは、必要なソフトウェアパッケージのインストールと復元されたファイルの適切な場所への配置を詳細に説明する明確なリカバリ計画があり、ほんの一部しか使用しない場合は、ニーズに十分対応できます。バックアップアーカイブ用のディスクスペース。
ストレージデーモン接続を構成する
Bacula Director構成ファイルで、Storageリソースは、Directorが接続する必要のあるStorageDaemonを定義します。 実際のストレージデーモンをすぐに構成します。
ストレージリソースを見つけて、Addressの値を置き換えます。 localhost
、バックアップサーバーのプライベートFQDN(またはプライベートIPアドレス)を使用します。 次のようになります(強調表示された単語に置き換えてください)。
Storage {
Name = File
# Do not use "localhost" here
Address = backup_server_private_FQDN # N.B. Use a fully qualified name here
SDPort = 9103
Password = "@@SD_PASSWORD@@"
Device = FileStorage
Media Type = File
}
これが必要なのは、プライベートネットワークインターフェイスでリッスンするようにストレージデーモンを構成し、リモートクライアントがそれに接続できるようにするためです。
カタログ接続の構成
Bacula Director構成ファイルで、Catalogリソースは、Directorが使用および接続するデータベースの場所を定義します。
「MyCatalog」という名前のカタログリソース(「汎用カタログサービス」というコメントの下にあります)を見つけて、の値を更新します。 dbpassword
したがって、 baculaMySQLユーザーに設定したパスワードと一致します。
# Generic catalog service
Catalog {
Name = MyCatalog
# Uncomment the following line if you want the dbi driver
# dbdriver = "dbi:postgresql"; dbaddress = 127.0.0.1; dbport =
dbname = "bacula"; dbuser = "bacula"; dbpassword = "bacula_db_password"
}
これにより、BaculaDirectorがMySQLデータベースに接続できるようになります。
プールを構成する
プールリソースは、バックアップを書き込むためにBaculaが使用するストレージのセットを定義します。 ストレージボリュームとしてファイルを使用し、ローカルバックアップに適切なラベルが付けられるようにラベルを更新するだけです。
「ファイル」という名前のプールリソース(「#ファイルプール定義」というコメントの下にあります)を見つけて、ラベル形式を指定する行を追加します。 完了すると、次のようになります。
# File Pool definition
Pool {
Name = File
Pool Type = Backup
Label Format = Local-
Recycle = yes # Bacula can automatically recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 365 days # one year
Maximum Volume Bytes = 50G # Limit Volume size to something reasonable
Maximum Volumes = 100 # Limit number of Volumes in Pool
}
保存して終了。 これで、BaculaDirectorの構成が完了しました。
ディレクター構成の確認:
Director構成ファイルに構文エラーがないことを確認しましょう。
- sudo bacula-dir -tc /etc/bacula/bacula-dir.conf
エラーメッセージがない場合は、 bacula-dir.conf
ファイルに構文エラーはありません。
次に、ストレージデーモンを構成します。
ストレージデーモンを構成する
Baculaサーバーはほぼセットアップされていますが、ストレージデーモンを構成する必要があるため、Baculaはバックアップを保存する場所を認識しています。
お気に入りのテキストエディタでSD構成を開きます。 viを使用します:
- sudo vi /etc/bacula/bacula-sd.conf
ストレージリソースの構成
ストレージリソースを見つけます。 これは、SDプロセスが接続をリッスンする場所を定義します。 追加します SDAddress
パラメータを設定し、バックアップサーバーのプライベートFQDN(またはプライベートIPアドレス)に割り当てます。
Storage { # definition of myself
Name = BackupServer-sd
SDPort = 9103 # Director's port
WorkingDirectory = "/var/lib/bacula"
Pid Directory = "/var/run/bacula"
Maximum Concurrent Jobs = 20
SDAddress = backup_server_private_FQDN
}
ストレージデバイスの構成
次に、「FileStorage」という名前のデバイスリソースを見つけ(「FileStorage」を検索)、の値を更新します。 Archive Device
バックアップディレクトリと一致させるには:
Device {
Name = FileStorage
Media Type = File
Archive Device = /bacula/backup
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
保存して終了。
ストレージデーモンの構成を確認する
StorageDaemon構成ファイルに構文エラーがないことを確認しましょう。
- sudo bacula-sd -tc /etc/bacula/bacula-sd.conf
エラーメッセージがない場合は、 bacula-sd.conf
ファイルに構文エラーはありません。
Baculaの設定が完了しました。 Baculaサーバーコンポーネントを再起動する準備ができました。
Baculaコンポーネントのパスワードを設定する
Director、SD、FDなどの各Baculaコンポーネントには、コンポーネント間の認証に使用されるパスワードがあります。構成ファイルを調べているときに、プレースホルダーに気付いたと思います。 これらのパスワードを手動で設定することは可能ですが、実際にこれらのパスワードを知る必要はないため、コマンドを実行してランダムなパスワードを生成し、さまざまなBacula構成ファイルに挿入します。
これらのコマンドは、Directorパスワードを生成および設定します。 The bconsole
Directorに接続するため、パスワードも必要です。
- DIR_PASSWORD=`date +%s | sha256sum | base64 | head -c 33`
- sudo sed -i "s/@@DIR_PASSWORD@@/${DIR_PASSWORD}/" /etc/bacula/bacula-dir.conf
- sudo sed -i "s/@@DIR_PASSWORD@@/${DIR_PASSWORD}/" /etc/bacula/bconsole.conf
これらのコマンドは、ストレージデーモンのパスワードを生成および設定します。 DirectorはSDに接続するため、パスワードも必要です。
- SD_PASSWORD=`date +%s | sha256sum | base64 | head -c 33`
- sudo sed -i "s/@@SD_PASSWORD@@/${SD_PASSWORD}/" /etc/bacula/bacula-sd.conf
- sudo sed -i "s/@@SD_PASSWORD@@/${SD_PASSWORD}/" /etc/bacula/bacula-dir.conf
これらのコマンドは、ローカルのファイルデーモン(Baculaクライアントソフトウェア)のパスワードを生成して設定します。 DirectorはこのFDに接続するため、パスワードも必要です。
- FD_PASSWORD=`date +%s | sha256sum | base64 | head -c 33`
- sudo sed -i "s/@@FD_PASSWORD@@/${FD_PASSWORD}/" /etc/bacula/bacula-dir.conf
- sudo sed -i "s/@@FD_PASSWORD@@/${FD_PASSWORD}/" /etc/bacula/bacula-fd.conf
これで、Baculaコンポーネントを開始する準備が整いました。
Baculaコンポーネントを起動する
次のコマンドを使用して、Bacula Director、Storage Daemon、およびローカルFileDaemonを起動します。
- sudo systemctl start bacula-dir
- sudo systemctl start bacula-sd
- sudo systemctl start bacula-fd
それらがすべて正しく起動した場合は、次のコマンドを実行して、起動時に自動的に起動するようにします。
- sudo systemctl enable bacula-dir
- sudo systemctl enable bacula-sd
- sudo systemctl enable bacula-fd
バックアップジョブを実行して、Baculaが機能することをテストしてみましょう。
バックアップジョブのテスト
Bacula Consoleを使用して、最初のバックアップジョブを実行します。 問題なく動作する場合は、Baculaが正しく構成されていることがわかります。
次に、次のコマンドを使用してコンソールに入ります。
- sudo bconsole
これにより、Baculaコンソールプロンプトが表示されます。 *
促す。
ラベルを作成する
を発行することから始めます label
指図:
- label
ボリューム名を入力するように求められます。 任意の名前を入力してください。
Enter new Volume name:MyVolume
次に、バックアップで使用するプールを選択します。 「2」と入力して、前に構成した「ファイル」プールを使用します。
Select the Pool (1-3):2
バックアップジョブを手動で実行する
Baculaは、バックアップ用のデータをどのように書き込みたいかを認識しました。 これで、バックアップを実行して、正しく機能することをテストできます。
- run
実行するジョブを選択するように求められます。 「BackupLocalFiles」ジョブを実行したいので、プロンプトで「1」を入力します。
Select Job resource (1-3):1
「バックアップジョブの実行」確認プロンプトで、詳細を確認し、「はい」と入力してジョブを実行します。
- yes
メッセージとステータスを確認する
ジョブを実行した後、Baculaはメッセージがあることを通知します。 メッセージは、実行中のジョブによって生成された出力です。
次のように入力してメッセージを確認します。
- messages
メッセージには、「以前の完全バックアップジョブレコードが見つかりません」と表示され、バックアップジョブが開始されたことが示されます。 エラーがある場合は、何かが間違っているので、ジョブが実行されなかった理由についてのヒントが得られるはずです。
ジョブのステータスを確認するもう1つの方法は、ディレクターのステータスを確認することです。 これを行うには、bconsoleプロンプトで次のコマンドを入力します。
- status director
すべてが正常に機能している場合は、ジョブが実行されていることを確認する必要があります。 このようなもの:
Output — status director (Running Jobs)Running Jobs:
Console connected at 09-Apr-15 12:16
JobId Level Name Status
======================================================================
3 Full BackupLocalFiles.2015-04-09_12.31.41_06 is running
====
ジョブが完了すると、次のようにステータスレポートの[終了したジョブ]セクションに移動します。
Output — status director (Terminated Jobs)Terminated Jobs:
JobId Level Files Bytes Status Finished Name
====================================================================
3 Full 161,124 877.5 M OK 09-Apr-15 12:34 BackupLocalFiles
「OK」ステータスは、バックアップジョブが問題なく実行されたことを示します。 おめでとう! Baculaサーバーの「フルセット」のバックアップがあります。
次のステップは、復元ジョブをテストすることです。
復元ジョブのテスト
バックアップが作成されたので、正しく復元できることを確認することが重要です。 The restore
コマンドを使用すると、バックアップされたファイルを復元できます。
すべてのジョブを復元を実行
実例を示すために、最後のバックアップのすべてのファイルを復元します。
- restore all
選択メニューが表示され、復元元のバックアップセットを識別するために使用されるさまざまなオプションが表示されます。 バックアップは1つしかないため、「最新のバックアップを選択」してみましょう。オプション5を選択します。
Select item (1-13):5
クライアントはBaculaサーバーの1つしかないため、自動的に選択されます。
次のプロンプトでは、使用するFileSetを尋ねられます。 「フルセット」を選択します。これは2である必要があります。
Select FileSet resource (1-2):2
これにより、バックアップしたディレクトリ構造全体を含む仮想ファイルツリーに移動します。 このシェルのようなインターフェースにより、復元するファイルにマークを付けたり、マークを外したりするための簡単なコマンドが可能になります。
「すべてを復元」するように指定したため、バックアップされたすべてのファイルはすでに復元のマークが付けられています。 マークされたファイルは先頭で示されます *
キャラクター。
選択を微調整したい場合は、「ls」および「cd」コマンドでファイルをナビゲートして一覧表示し、復元するファイルに「mark」でマークを付け、「unmark」でファイルのマークを外すことができます。 コンソールに「help」と入力すると、コマンドの完全なリストを利用できます。
復元の選択が終了したら、次のように入力します。
- done
復元ジョブを実行することを確認します。
OK to run? (yes/mod/no):yes
メッセージとステータスを確認する
バックアップジョブと同様に、復元ジョブを実行した後、メッセージとDirectorのステータスを確認する必要があります。
次のように入力してメッセージを確認します。
- messages
復元ジョブが開始されたか、「復元OK」ステータスで終了したことを示すメッセージが表示されるはずです。 エラーがある場合は、何かが間違っているので、ジョブが実行されなかった理由についてのヒントが得られるはずです。
繰り返しになりますが、Directorのステータスを確認することは、復元ジョブの状態を確認するための優れた方法です。
- status director
復元が終了したら、次のように入力します exit
Baculaコンソールを離れるには:
- exit
復元の確認
復元ジョブが選択したファイルを実際に復元したことを確認するには、 /bacula/restore
ディレクトリ(Director構成の「RestoreLocalFiles」ジョブで定義された):
- sudo ls -la /bacula/restore
「RestoreLocalFiles」ジョブの「Exclude」セクションにリストされたファイルとディレクトリを除いて、ルートファイルシステム内のファイルの復元されたコピーが表示されます。 データ損失から回復しようとしている場合は、復元されたファイルを適切な場所にコピーできます。
復元されたファイルを削除する
復元されたファイルを削除して、ディスク領域を解放することをお勧めします。 これを行うには、次のコマンドを使用します。
- sudo -u root bash -c "rm -rf /bacula/restore/*"
これを実行する必要があることに注意してください rm
復元されたファイルの多くはrootが所有しているため、rootとしてコマンドを実行します。
結論
これで、ローカルファイルシステムをバックアップおよび復元できる基本的なBaculaセットアップができました。 次のステップは、他のサーバーをバックアップクライアントとして追加して、データが失われた場合にサーバーを回復できるようにすることです。
次のチュートリアルでは、他のリモートサーバーをBaculaクライアントとして追加する方法を示します。Baculaを使用してCentOS7サーバーをバックアップする方法。