我想使用“scrot”每五分钟截取一次屏幕截图。要通过 SSH 连接执行此操作,我可以运行
ssh -X user@server
while true; do scrot -z; sleep 300; done
或者(手动检查 /var/run/gdm/auth-for-XXX-YYY/database 中的文件夹名称后)
ssh user@server
export DISPLAY=:0
export XAUTHORITY=/var/run/gdm/auth-for-user-wUM1sV/database
while true; do scrot -z; sleep 300; done
但是如果我想将其作为 cron 任务执行,我将自动需要将环境变量 XAUTHORITY 映射到 /var/run/gdm/ 中的随机文件夹。根据这篇文章如何创建 .Xauthority 文件?这个映射是自动完成的,但我猜对于 cron 作业来说情况并非如此,而且如果不使用 X 转发,对于 SSH 会话来说显然也不是如此。
有人对如何创建这个 cron 作业有什么建议吗?
答案1
假设您的用户使用 X 会话登录,并且是第一个会话,它将获得显示编号 0,否则尝试找出用户正在运行的显示编号。尝试将其放入用户的 crontab 中
*/5 * * * * DISPLAY=:0 /usr/bin/scrot