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 '{}' \;
Согласно информации от 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
Команда 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