4.4. スクリプトの実行中に行われる処理

スクリプトを実行すると、件名ごとのディレクトリを作成します。 DIRPATH には、必ず格納する写真に合わせた名前をコマンドラインから入力します。 your_script_file_name = getcamJ であれば (J は .jpg という拡張子を持った写真を取得するという意味です)、 コマンド入力の流れは次のようになります―


[bash]$ getcamJ
Please enter a directory name for the pictures.
(写真を格納するディレクトリの名前を入力してください)
bash]$ something
Password: 
[bash]$ your root password

このスクリプトをスーパーユーザー権限で実行する人は、 この段落の残りを読む必要はありません。このスクリプトを実行するには、 スーパーユーザーになる必要があります。つまり 'su' コマンドを使います。 -c フラッグを使うと1個のコマンドを実行し、 結果を現在の実行ディレクトリに返します。引用符 (quotation) を使うとコマンドの後に入力項目を追加できますし、 セミコロンを使うと複数のコマンドを実行できます。

/sbin/modprobe usb-storagemodprobe コマンドは USB マスストレージモジュールを必要な他のモジュールやドライバと一緒にロードします。 主に SCSI ドライバです。/dev ディレクトリ下に次のエントリがあるか確認してください― sda0, sda1, sda2, sda3, sda4, sdb0, sdb1, sdb2, sdb3, sdb4 。他にマウントされた SCSI デバイスがあるならば、 sda1 を適切なデバイス、おそらく sdb1 にセットしてください。

SCSI ドライバをマウント― mount -t vfat /dev/sda1 /mnt/camera

USB を起動― /etc/rc.d/init.d/usb start

写真をカメラからハードディスクに転送してください。mv を使えば同時にカメラから写真を削除できます― mv /mnt/camera/dcim/100msdcf/*.jpg picture/$DIRPATH;

SCSI ドライバをアンマウントしてください― umount /mnt/camera

次に chown -R your_login_name picture/$DIRPATH を実行します。スーパーユーザー (su) あるいは root として実行した結果、 ファイルと写真の所有者は root になりますから、 このままではファイルと写真に対して何らかの操作をしようとしても、 permission denied (権限外)エラーになってしまいます。 このコマンドを入力することで permission denied エラーを回避できるので、詳しい内容についてはマニュアルを参照してください。

私のシステムではコンパイル時に USB とSCSI をカーネルに組み込まず、 全てモジュールとしてコンパイルしました。ここで使ったスクリプトは、 読者のシステムも同じ設定であるという前提です。もし同じ設定でなければ変更の 必要なものもあります。マニュアルと HOWTO を読むか、Linux の ニュースグループ で質問してください。