У меня есть каталог с именем «secure», который я монтирую на своем ноутбуке через sshfs всякий раз, когда сервер находится в зоне досягаемости.
Пока этот сервер находится в пределах досягаемости, я хочу поддерживать его в двухсторонней синхронизации с каталогом, называемым «синхронизация».
«Безопасный» каталог монтируется с pam_mount при входе в систему и размонтируется при выходе из системы. У меня есть настройка pam_script для создания символической ссылки для «синхронизации» при сбое монтирования и удаления ссылки при размонтировании.
В моей первой попытке было запустить унисон с pam_script:
#!/bin/bash
#pam_script_ses_open (runs at the start of a session)
home=`eval echo ~$PAM_USER`
secure=$home/secure
sync=$home/sync
if mount|grep "$secure"; then
echo Synchronizing with server $sync : $secure
unison "file://$sync" "file://$secure"
else
ln -s "$sync" "$secure"
fi
И в конце сеанса:
#!/bin/bash
userid=$PAM_USER
home=`eval echo ~$userid`
secure=$home/secure
sync=$home/sync
if mount|grep "$secure"; then
echo Synchronizing with server
unison "file://$sync" "file://$secure"
else
rm "$secure"
fi
Оба этих скрипта работают под root.
При выходе из системы две директории синхронизируются очень хорошо.
На войдите , однако я получаю следующее сообщение об ошибке:
Синхронизация с сервером / home / users / user / sync: / home / users / user / secure [1110 ]
Обращение к серверу ...
Неустранимая ошибка: неверное число корней: ожидается 2, но предоставлено 4 (ssh: // user @ server /, / home / users / user, file: // / home / users / user / secure, file: /// home / users / user / sync)
(Может быть, вы указали корни как в командной строке, так и в профиле?)
blockquote >Я проверил, что в домашнем каталоге пользователя не существует каталога .unison, и выполнил утилиту очистки apt-get, а затем установил команду apt-get.
Я не совсем доволен использованием унисон таким образом (даже если он работал), потому что он будет синхронизироваться только при входе и выходе из системы. Это не будет живая синхронизация.
Как я могу заставить sshfs или fstab запускать живую синхронизацию всякий раз, когда каталог монтируется, или если это невозможно, почему в моей текущей установке происходит сбой unison?
Я ищу чистый и надежный решение.