1

ディレクトリに配置されたファイルを自動アップロードするスクリプトを作成し、現在ログインしているユーザーにそれらへのリンクを表示します。マシンのユーザーは LDAP 経由で認証されます。

incron が監視しているディレクトリは、ユーザーのディレクトリの外部にあり、各ユーザーの /home/username/uploads ディレクトリにシンボリック リンクされています。ユーザーがここにファイルを配置すると、問題なく自動的にアップロードされます。

私が問題に遭遇したのは、現在のユーザーにファイルの URL を表示することです。関連するコードは次のとおりです。

/var/spool/incron/root から

/home/public/uploads IN_CLOSE_WRITE /home/public/upload_files.sh > /dev/null 2>&1

Zenity 表示に関する /home/public/upload_files.sh の行:

DISPLAY="$(ck-list-sessions | grep "active = TRUE" -A1 | tail -n 1 | cut -f2 -d"'").0"
zenity --info --text="http://aniceurlhere.com/`date +%m.%d.%y`/$filename" --display=$DISPLAY

前述のとおり、アップロードは完了しますが、Zenity メッセージは表示されません。/var/log/cron を見ると、ジョブが実行されて完了していることがわかり、エラーは表示されていません。

任意の支援をいただければ幸いです。

4

1 に答える 1

2

zenity または notify-send を使用する場合、これには少し手間がかかります。まだ動作していませんが、代わりに xmessage を使用しました。

簡単なオプション 1: xmessage (スクリプト内)

MSSG="/tmp/mssg-file-${RANDOM}" 
echo -e " MESSAGE \n ==========\n Done with task, YEY. " > ${MSSG}
xmessage -center -file ${MSSG} -display :0.0 
[[ -s ${MSSG} ]] && rm -f ${MSSG}

簡単なオプション 2: DISPLAY を設定します (その後、動作するはずです)。

    export DISPLAY=:0 && /usr/bin/somedirectory/somecommand
于 2014-06-05T21:42:59.740 に答える