файлы rsync для нескольких учетных записей пользователей

Вам не обязательно использовать реальный экран ограниченного размера. Создайте виртуальный экран размера, необходимого для одновременного отображения всего вывода, а затем создайте дамп этого экрана или терминала. Например:

$ 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 пикселей с высотой xterm200 строк. Переменная WINDOWIDэкспортируется с помощью xtermи может быть передана программе ImageMagick convertдля копирования изображения в файл png. Команда identifyпоказывает, что все содержимое xtermбыло захвачено, чего не было бы на моем реальном экране с разрешением всего 1080 пикселей.

1
15.06.2021, 18:59
1 ответ

В общем, да. Проблема, с которой вы столкнетесь, — это аутентификация. Вы можете, например, запустить скрипт 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... вы поняли суть.

0
28.07.2021, 11:24

Теги

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