С помощью cygwin, rsync и SSH я настроил механизм резервного копирования, который копирует все содержимое vServers (под управлением Debian) на мой локальный жесткий диск NTFS (под управлением Windows 10), и он работает. Частично.
Я использую эту команду:
rsync -avzu --no-perms \
--exclude 'bin' \
--exclude 'dev' \
[...]
--exclude 'sys' \
--exclude 'tmp' \
--exclude 'var/tmp' \
--exclude 'var/cache' \
[user]@[domain]:/ /var/vserver-backup
И, конечно, это приводит к тому, что все файлы теряют свои права при копировании (то есть из-за аргумента --no-perms
). Также я не совсем уверен, смогу ли я правильно скопировать символические ссылки обратно на vServer.
Я хочу, чтобы локальные файлы (копии) были доступны мне на этом локальном компьютере (используя NTFS). Поскольку разрешения Linux будут дико сопоставляться с любыми учетными записями моих локальных компьютеров и, следовательно, могут быть недоступны, использование NTFS-ACL кажется не очень хорошей идеей, верно? С другой стороны, я хочу иметь возможность аккуратно восстановить эту резервную копию, включая ACL и символические ссылки. И да, vServer установил расширенные списки ACL для некоторых файлов и даже каталогов (устанавливается с помощью setfacl
).
Это возможно было бы возможно, если бы я использовал tar
вместо rsync
, не так ли? Но это заняло бы значительно больше времени, так как не только передавало дельту, верно? (Я не уверен, что tar
вообще возможен ...)
Таким образом, возможно ли в Debian способ автоматически создать файл, содержащий разрешения для всех файлов и расположение символических ссылок, чтобы его можно было выполнить после восстановления резервной копии? Я представляю, что это сценарий оболочки в этом формате:
chown root:root /var
chmod 0755 /var
chown root:root /var/data
chmod 0755 /var/data
[...]
ln -s /etc/some/file /etc/path/to/symlink
[...]
chown root:root /www
chmod 0700 /www
setfacl -d -m g:www-data:rx /www
Этот файл, конечно, будет создан на стороне сервера и скопирован командой rsync на локальный жесткий диск вместе со всеми остальными файлами.
Есть ли известный способ сделать это? Или у вас есть другие предложения? Чтобы ты делал?