Вам не обязательно использовать реальный экран ограниченного размера. Создайте виртуальный экран размера, необходимого для одновременного отображения всего вывода, а затем создайте дамп этого экрана или терминала. Например:
$ Xvfb :1 -screen 0 100x4000x24 -noreset &
$ xterm -geometry 10x200 -display :1 -e \
sh -c 'echo $WINDOWID >/tmp/id;ls -l /etc;sleep 99' &
$ DISPLAY=:1 convert x:$(cat /tmp/id) /tmp/out.png
$ identify /tmp/out.png
/tmp/out.png PNG 79x2604...
Это создает экран размером 100 на 4000 пикселей с высотой xterm
200 строк. Переменная WINDOWID
экспортируется с помощью xterm
и может быть передана программе ImageMagick convert
для копирования изображения в файл png. Команда identify
показывает, что все содержимое xterm
было захвачено, чего не было бы на моем реальном экране с разрешением всего 1080 пикселей.
В общем, да. Проблема, с которой вы столкнетесь, — это аутентификация. Вы можете, например, запустить скрипт rsync из cron. Сделайте себе сценарий оболочки. Если источник и место назначения находятся на локальном компьютере, root работает.
Если источник или место назначения удалены, это гораздо более сложная задача. Самый простой способ обойти проблему ---— использовать NFS для монтирования удаленного диска на локальном компьютере. Вы также можете найти аутентификацию ssh... это кроличья нора, которую вам нужно изучить
Хорошо. Предположим, что /root/backupuserlist — это список пользователей, по одному в каждой строке, а /backupdrive — это место, где вы создаете их резервные копии.
#!/bin/bash
# backup /root/backupuserlist to /backupdrive
BK_USERS=`cat /root/backupuserlist`
BK_DRIVE=/backupdrive
for user in $BK_USERS; do
rsync -av ~$user/ $BK_DRIVE/$user/
done
crate /root/backuserlist, а затем запустите это как root... или поместите его в crontab или /etc/crontab root... вы поняли суть.