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

/home/public/upload_files.sh 中与 Zenity 显示相关的行:

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:设置显示(然后应该工作)

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