bak*_*ytn 0 linux script shell cron
您好,我写了一个简单的命令行脚本,假设每 5 分钟截取一次屏幕截图。
(使用 ImageMagick 的“导入”程序)
这是脚本(shottr.sh):
#!/bin/sh
PTH="/home/username/images"
NM=`date +%j`_`date +"%F %k:%M"`
/usr/bin/import -window root -resize 1024 "$PTH/$NM.png" &
echo "Screenshot" | festival --tts &
Run Code Online (Sandbox Code Playgroud)
如果我手动执行,这工作正常,即:
# ./shottr.sh
或者
#sh shottr.sh
cron 设置如下:
*/5 * * * * /bin/sh /home/username/scripts/shottr.sh
脚本本身正在执行(我听到一个声音说:“屏幕截图”)但没有截取实际的屏幕截图。
PS:请放心,这不是权限问题(我放置了一个简单的“触摸”调用并创建了文件)
可能是如果它是从 cron 运行的……它没有“窗口”,所以它不能从任何地方截取屏幕截图??如果是这种情况,那么我该如何解决?
当您从中运行脚本时,cron它无法访问您的DISPLAY环境变量,这就是它如何知道 X11 显示的内容与哪些内容进行交互。您可以通过将以下内容添加到脚本中来使其工作:
# Set display to :0 if it's not already set.
: ${DISPLAY:=:0}
export DISPLAY
Run Code Online (Sandbox Code Playgroud)
这假设您DISPLAY是 always :0,如果您在控制台上登录,则为 true,但如果您远程运行 X,则为 true。
| 归档时间: |
|
| 查看次数: |
1449 次 |
| 最近记录: |