2014年7月23日水曜日

OSX: Bashscriptを作成し、実行する方法

バッシュスクリプトとは:

ターミナルで利用できるコマンドを実行可能形式のTextファイルに羅列し記述することで、一括で実行できるようにする為のスクリプトである。
この場合、外部パラメタ、グローバルまたはローカル変数、条件式を用いてそれに応じたTerminalコマンドを実行するように記述する為のものです。更なる詳しい事についてはGoogle検索してください。

作成方法:

コマンドによるバックアップ方法の内容に基づきbashscriptを作成する方法を説明する。

作成場所:~/Documents (書類)フォルダ
  1. 標準搭載の「TextEdit」などのエディターを起動する。
    • TextEditをテキストエディターとして使うにはTextEditアプリのTextEditメニューのPreferences(設定、「⌘+,」を押下)を表示させ、Plain Textを設定する必要があります。
  2. 以下の内容をその新規作成するファイルに記載、次の行からそれぞれのコマンドをTerminalで起動するときと同様の形式で記載する。
    • #!/bin/bash
  3. 任意のファイル名をつけ保存し、拡張子をshとする。
  4. Terminalを起動し、実行権限を以下のコマンドで作成したファイルに付与する。
    • $ chmod +x ~/Documents/backup.sh
  5. Terminalから実行し動作を確認する。
    • $ ~/Documents/backup.sh
   上記、$表示はコンソール内の表示であって無視。
 途中停止する場合、Control + Cで停止できます。

shファイル内容:
以下の内容はデスクトップにBackupフォルダを作成して個別バックアップ及びリストアするスクリプトです。なお、コマンド実行時にパラメターとしてディレクトリを入力を促すようにする事もできます。

------------------------------------------------------------------
Backup:

------------------------------------------------------------------
#!/bin/bash

echo Put your favourite path except the path to be backed up. Otherwise, it’ll be loop.
echo recommend to use external mount point such /Volumes

SUBVAR1=/Volumes/G-DRIVE
SUBVAR2=/Backup0728

if [ -z “$SUBVAR2” ]
then
VAR=$SUBVAR1
else
VAR=$SUBVAR1$SUBVAR2
mkdir $VAR
fi

mkdir $VAR
mkdir $VAR/System
mkdir $VAR/System/var
mkdir $VAR/System/Library
mkdir $VAR/User
mkdir $VAR/User/Mail
mkdir $VAR/User/Library
mkdir $VAR/User/Library/Application\ Support/

rsync -av -u ~/Desktop $VAR/User/
rsync -av -u ~/Documents $VAR/User/
rsync -av -u ~/Movies $VAR/User/

echo $VAR

rsync -av -u cp -R ~/Music $VAR/User/
rsync -av -u ~/Pictures $VAR/User/
rsync -av -u ~/Downloads $VAR/User/
rsync -av -u ~/Library/Logs $VAR/User/Library/

rsync -av -u ~/Library/Mail/V2 $VAR/User/Mail/
rsync -av -u ~/Library/Application\ Support/AddressBook $VAR/User/Library/Application\ Support/
rsync -av -u ~/Library/Calendars $VAR/User/Library/
rsync -av -u ~/Library/Safari $VAR/User/Library/
rsync -av -u ~/Library/Keychains $VAR/User/Library/
rsync -av -u ~/Library/StickiesDatabase $VAR/User/Library/
rsync -av -u ~/Library/Preferences $VAR/User/Library/
rsync -av -u ~/Library/Logs $VAR/User/Library/

sudo rsync -av -u /Library/KeyChains $VAR/System/Library/
sudo rsync -av -u /var/log $VAR/System/var/
sudo rsync -av -u /Library/Logs $VAR/System/Library/




-------------------------------------------------------
Restore: 


-------------------------------------------------------
#!/bin/bash

echo put your favourite path except the path to be backed up. Otherwise, it’ll be loop.
echo recommend to use external mount point such /Volumes

SUBVAR1=/Volumes/G-DRIVE
SUBVAR2=/Backup0728

if [ -z “$SUBVAR2” ]
then
VAR=$SUBVAR1
else
VAR=$SUBVAR1$SUBVAR2
fi

echo Documents
echo cp -R $VAR/Documents ~/

echo Desktop
echo cp -R $VAR/Desktop ~/

echo Movies
sudo cp -R $VAR/Movies ~/

echo Music
sudo cp -R $VAR/Music ~/

echo Mail
sudo cp -R $VAR/User/Mail/V2 ~/Library/Mail/

echo Pictures
sudo cp -R $VAR/User/Pictures ~/

echo Downloads
sudo cp -R $VAR/User/Downloads ~/

echo user LibraryApplication Support
sudo cp -R $VAR/User/Library/Application\ Support/AddressBook  ~/Library/Application\ Support/

echo user Library Calendars
sudo cp -R $VAR/User/Library/Calendars ~/Library/

echo user Safari
sudo cp -R $VAR/User/Library/Safari ~/Library/

echo User Keychains
sudo cp -R $VAR/User/Library/Keychains ~/Library/

echo User Stickies
sudo cp -R $VAR/User/Library/StickiesDatabase ~/Library/

echo User Preferences
sudo cp -R $VAR/User/Library/Preferences ~/Library/

echo User Logs
sudo cp -R  $VAR/User/Library/Logs ~/Library/

echo System Library Keychain
sudo cp -R $VAR/System/Library/KeyChains /Library/

echo System var
sudo cp -R $VAR/System/var/log /var/

echo System Library

sudo cp -R $VAR/System/Library/Logs /Library/

参考リンク:


0 件のコメント:

コメントを投稿