Сделайте снимок экрана с рабочего стола Gnome через SSH

backupdate=$(date +%Y-%m-%d) 
dirbackup=/save/$backupdate 
mkdir $dirbackup

find../home -type d -not -name "." -a -not -name ".." -exec tar -cjf $dirbackup/'{}'.tar.bz2 '{}' \;
5
10.05.2020, 21:28
1 ответ

Для Вэйланда

Согласно информации от n -tchen, Flameshot(в репозиториях Fedora )работает хорошо:

flameshot screen -p ~/

Если вы подключены через ssh, добавьте WAYLAND_DISPLAY=wayland-0в начале строки выше.

Вы также можете использовать gnome-screenshotвместо Flameshot, но для ssh вам все равно понадобится указанное выше дополнение.

Дополнительная информация(источник):

The cross-platform way to take screenshots on Wayland is via xdg-desktop-portal (which also works outside of Flatpak). See https://github.com/flatpak/xdg-desktop-portal/blob/master/data/org.freedesktop.portal.Screenshot.xml

Наконец, Pyscreenshot поддерживает Wayland; см. файл README на GitHub

Для X11

Команда importиз ImageMagick отлично справляется со скриншотами:

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
5
28.04.2021, 23:15

Теги

Похожие вопросы