シェルスクリプトを使用してLinuxでディレクトリをバックアップする

Linuxでデータをバックアップするためのいくつかのオプションがあります。fwbackupsSbackupなどの無料で入手できるソフトウェアプログラムを使用できます。ただし、追加のソフトウェアをインストールせずにディレクトリをバックアップする簡単な方法があります。

変数、tarコマンド、およびdateコマンドを使用してシェルスクリプトを作成し、ディレクトリとそのサブディレクトリの日付付きバックアップファイルを作成します。

シェルスクリプトは、基本的に、順番に実行されるコマンドのリストを含むファイルです。定期的に実行する一連のコマンドがある場合は、これらのコマンドを含むシェルスクリプトを作成すると便利です。次に、コマンドを実行するためにスクリプトファイルを実行するだけです。

シェルスクリプトファイルの作成

この例では、ユーザーガイド用のファイルを含むディレクトリをバックアップするシェルスクリプトを作成します。Ubuntuでは(Ubuntu)Gnome環境を使用しています。

まず、[場所(Places)]メニューから[ホームフォルダ(Home Folder)]を選択して、ホームディレクトリにアクセスします。ファイルブラウザ(File Browser)が開き、ホームディレクトリが表示されます。

ホームフォルダを開く

バックアップを実行するためのコマンドを入力する新しい空のファイルを作成します。右ペインを右クリックして、[ドキュメントの作成]、[(Right-click)Create Document | Empty File ポップアップメニューからファイルを空にします。

空のシェルスクリプトファイルを作成する

ファイルがリストに追加され、名前を変更する準備が整いました。ファイルの名前を入力(Type)し、ファイルに.shの拡張子を付けます。

名前を変更する準備ができている新しいファイル

この例では、ファイルにuser_guide_backups.shという名前を付けました。

シェルスクリプトファイルの名前が変更されました

次に、コマンドをファイルに追加する必要があります。ファイルの名前を右クリックし、ポップアップメニューから[ geditで開く]を選択します。(Open with gedit)

geditでシェルスクリプトファイルを開く

ファイルはgeditで開きます。ファイルに次の行を入力し、[保存(Save)]をクリックします。各行の目的は以下のとおりです。

注:(NOTE:)次のテキストをコピーしてgeditに貼り付けることもできます。必ず<username>を自分のユーザー名に変更してください。

#!/bin/bash
 SRCDIR="/home/<username>/Documents/my_work/"
 DESTDIR="/home/<username>/Backups/"
 FILENAME=ug-$(date +%-Y%-m%-d)-$(date +%-T).tgz
 tar – create – gzip – file=$DESTDIR$FILENAME $SRCDIR

geditでシェルスクリプトファイルを編集する

行ごとの説明

次の表は、シェルスクリプトファイルの各行の内容を示しています。

Line # Description
1 This line must be the first line in a bash shell script, which is the default type of script.
2 This line sets up a variable called SRCDIR and sets the value of it to the directory to be backed up.
NOTE: Be sure to replace <username> with your username.
3 This line sets up a variable called DESTDIR and sets the value of it to the directory into which the backup file will be written.
NOTE: Be sure to replace <username> with your username.
4 This line sets up a variable called FILENAME and sets the value using text and variables containing the date command to add the current date and time to the filename. For example, the filename might be ug-20100212-13:03:45.tgz.
NOTE: When using a variable, always start it with the dollar sign ($). If you use a command as part of a variable, enclose the command and the options for the command in parentheses.
5 This line is the tar command with the following function and options added.

–create This function creates a new archive (or truncates an old one if the filename specified already exists) and writes the named files or directory to it.
–gzip This option tells tar to compress the files in the archive using the gzip utility.
–file This option gives tar the filename to use. In this case, we assembled the filename using the DESTDIR, FILENAME, and SRCDIR variables.

シェルスクリプトファイルの(Shell Script File)権限(Permissions)の編集

スクリプトを実行する前に、ファイルに正しいアクセス許可があることを確認する必要があります。これを行うには、上記のようにホームフォルダを再度開き、シェルスクリプトファイルを右クリックします。(Home Folder)ポップアップメニューから[プロパティ(Properties)]を選択します。

シェルスクリプトファイルのプロパティを取得する

[プロパティ(Properties)]ダイアログボックスが表示されます。[(Make)実行](Execute)チェックボックスがオンになっていることを確認します。

シェルスクリプトファイルのアクセス許可

[閉じる](Close)をクリックします。

シェルスクリプトの実行

Accessories | Terminalの順に選択してターミナルウィンドウを開きます。アプリケーション(Applications)メニューからのターミナル。

ターミナルウィンドウを開く

ターミナル(Terminal)ウィンドウが開いたら、デフォルトでホームフォルダ(Home Folder)にいるはずです。コマンドラインでpwdと入力し、Enterキーを押すと、この事実が確認されます。プロンプトで、 。 ./user_guide_backups.shEnterキー(Enter)を押します。

シェルスクリプトの実行

ホームフォルダの(Home Folder)バックアップ(Backups)フォルダに.tgzファイルが必要です。ファイル名を右クリックすると、使用可能なアーカイブプログラムの1つでアーカイブを開くか、[ここに抽出(Extract Here )]コマンドを使用してファイルをバックアップ(Backups)フォルダに直接抽出するためのいくつかのオプションが表示されます。

.tgzファイルのポップアップメニューオプション

詳しくは

以下のリンクは、シェルスクリプト、 tar(tar)およびdateコマンド、およびその他のLinuxコマンドに関する詳細情報を提供します。

スクリプティング

bashシェルを使用してスクリプトを作成するためのクイックガイド(A quick guide to writing scripts using the bash shell)

Bash Shell Scripting – 10 Seconds Guide | All about Linux

Bashリファレンスマニュアル(Bash Reference Manual)

Linuxコマンド

tarMANページ(tar MAN Page)

日付MANページ(date MAN Page)

bashコマンド–LinuxMANページ(bash commands – Linux MAN Pages)

これらのページを調べると、独自の便利なbashシェルスクリプトを作成するのに役立ちます。



About the author

私はソフトウェア エンジニアであり、Windows 10 の専門家です。スマートフォン、Windows 10、および Microsoft Edge で 2 年以上の経験があります。私の主な焦点は、デバイスの動作をより良く、より速くすることです。Verizon、IMac、HP、Comcast など、さまざまな企業のさまざまなプロジェクトに携わってきました。また、Microsoft Azure クラウド トレーニングの認定インストラクターでもあります。



Related posts