SSH를 통해 Gnome 데스크탑에서 스크린샷 찍기

SSH를 통해 Gnome 데스크탑에서 스크린샷 찍기

Fedora 30(32 출시 예정)을 기반으로 하는 "디지털 사이니지 클라이언트"에 대한 자동 시작 설치가 설정되어 있으며 현재 화면에 있는 내용에 대한 실제 시각적 피드백을 받아야 합니다. 명령줄을 통해 Gnome-Remote-Desktop을 활성화해 보았습니다(참조:명령줄을 통해 Gnome 화면 공유를 활성화하시겠습니까?) 하지만 안타깝게도 그럴 수 없습니다.

따라서 새로운 방법은 스크린샷을 찍고 scp를 통해 복사하는 것입니다. gnome 터미널을 통해 클라이언트에서 직접 스크린샷을 찍을 수 있지만 gnome-screenshot원격으로 수행하는 방법은 모르겠습니다. KDE Spectacle이나 Shutter와 같은 다른 도구도 사용해 보았으나 운이 없었습니다.

한 가지 아이디어는 스크린샷을 찍기 위해 cronjob을 설정하는 것입니다.

$> crontab -e

1 * * * * gnome-screenshot

그러나 이것은 작동하지 않습니다. journalctl _COMM=cron설명하다-- No entries --

Gnome-Wayland-Fedora 데스크탑에서 스크린샷을 찍는 방법을 아는 사람이 있습니까? crontab을 통해 작동해야 합니까?

답변1

웨이랜드를 위해

n-tchen의 정보에 따르면,화재 사격(Fedora 저장소에서) 훌륭하게 작동합니다.

flameshot screen -p ~/

SSH를 통해 연결하는 경우 WAYLAND_DISPLAY=wayland-0이전 줄의 시작 부분에 이를 추가하세요.

대신 Flameshot을 사용할 수도 있지만 gnome-screenshot여전히 ssh에 대해 위의 항목을 추가해야 합니다.

추가 정보(원천):

Wayland에서 크로스 플랫폼 스크린샷을 찍는 방법은 다음과 같습니다.xdg-데스크탑 포털(Flatpak 외부에서도 작동합니다). 바라보다https://github.com/Flatpak/xdg-desktop-portal/blob/master/data/org.freedesktop.portal.Screenshot.xml

마지막으로 Pyscreenshot은 Wayland를 지원합니다.GitHub 읽어보기

X11의 경우

ImageMagick의 명령은 import스크린샷을 찍는 데 훌륭한 역할을 합니다.

import -silent -window root /tmp/screenshot.jpg

SSH를 통해 연결 DISPLAY=:0.0하고 로컬로 로그인한 것과 동일한 사용자로 로그인해야 하는 경우 이전 줄의 시작 부분에 이를 추가하세요.

crontab에서 실행하려면 다음 단계에 따라 설정하세요. 6분마다 스크린샷을 찍어 날짜/시간으로 인코딩된 파일 이름과 함께 저장합니다 /root/monitor/. Ubuntu 16.04 및 18.04에서 테스트되었습니다.

echo -n "/bin/bash -c '"                                                                  >cronexec
echo -n   'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin && ' >>cronexec
echo -n   'export HOME=/root && '                                                        >>cronexec
echo -n   'export D1=/tmp/gneemp && '                                                    >>cronexec
echo -n   'export F2=`date --utc +/root/monitor/%Y-%m-%dT%H:%M.jpg` && '                 >>cronexec
echo -n   'mkdir -p $D1 && '                                                             >>cronexec
echo -n   'chmod 643 $D1 && '                                                            >>cronexec
echo -n   'DISPLAY=:0.0 sudo -u `who --users |head -1 |grep -o "^\S*"` import -quiet -silent -window root $D1/tmp.jpg && '  >>cronexec
echo -n   'mkdir -p /root/monitor && '                                                   >>cronexec
echo -n   'mv $D1/tmp.jpg $F2 && '                                                       >>cronexec
echo -n   'rmdir $D1 '                                                                   >>cronexec
echo    "'"                                                                              >>cronexec
perl -p -i -e 's|\%|\\\%|g;' cronexec # from the manpage:  "Percent-signs (%) in the command, unless escaped with backslash (\) ..."
(sudo crontab -l 2>/dev/null; echo -n "*/6 * * * * "; cat cronexec) |sudo crontab - && rm cronexec

관련 정보