前回の続きだ
コマンドライン引数を利用するためシェルスクリプトの作成
前半での記述の通り、testを実行するにはテキストファイル名も引数として渡さなければいけない
シェルスクリプトの内容は
- /saveディレクトリに存在するテキストファイルの名前を取得し、環境変数FILEに代入
- test実行時に引数として指定する
- 実行後はテキストファイルを削除する
とする
hoge.sh
#!/bin/sh
export FILE=`find /var/www/html/save/*.txt`
echo "$FILE"
/var/www/html/save/test "$FILE"
rm -f "$FILE"
パスは相対にしてしまうとincronでの設定時に読み込めなくなってしまう
絶対パスにするか、絶対パスを読み込むコマンドを指定するべし
これにて./hoge.shをするだけでtest $FILE
を実行できるようになった
次はhoge.shを自動で実行する設定を作成する
incronのインストール
incronはファイルシステムの変更をトリガーに、決められた処理を実行するコマンドである
ユーザーがアップロードしたファイルをリアルタイムで処理する必要があるため使用する
$sudo apt update
$sudo apt install incron
crontabにて処理の流れを登録
$incrontab -e
設定を登録する画面になる
監視対象のディレクトリ イベント 実行する処理・コマンド
と記述する
/var/www/html/save IN_CREATE /var/www/html/save/hoge.sh
/var/www/html/saveにファイルが作成されたらhoge.shを実行する
という処理だ
incronでは必ず絶対パスで記述されたし