Осваиваю Яндекс.Диск в линуксе. Вариант использования, как предложили в radio-t: смонтировал, скинул бэкап, отмонтировал.
Насколько я понял davfs использует кэш, который складывает в ~./davfs2/cache
Как можно заставить davfs синхронизировать кэш при размонтировании или же вообще не использовать кэш?
Поясню в чем неудобство.
Монтирую диск, копирую туда большой файл (700 мб), отмонтирую.
В Яндексе файл не появляется, он остался лежать в кэше пользователя.
В выводе ps есть процесс, который видимо пытается докачать кэш уже отмонтированного диска, но на какой стадии этот процесс не ясно.
Размер кэша в devfs2.conf по умолчанию 50 мб.
Можно как-то заставить писать файлы размером больше, чем размер кэша, сразу на удаленный диск?
а попробуйте монтировать с опцией sync
All I/O to the filesystem should be done synchronously. In case of media with limited number of write cycles (e.g. some flash drives) «sync» may cause life-cycle shortening.
а ещё уже для самой DavFS delay_upload — сколько секунд ждать после записи файла в директорию.
When a file that has been changed is closed, mount.davfs will wait that many seconds before it will upload it to the server. This will avoid uploading of temporary files that will be removed immediately after closing. If you need the files to appear on the server immediately after closing, set this option to 0.
Default: 10
sync естественно не работает.
delay_upload тоже. Насколько я понимаю, это просто задержка перед отправкой.
Пока единственно решение которое я нашел, это установить размер кэша в 1мб и перед размонтирование проверять в цикле наличие файлов в кэше. Как только папка стала пустой — можно размонтировать.
Ну вообщем-то сделал костыль: перед размонтированием ждем пока из кэша не уйдут все файлы.
#!/bin/bash
echo «Mount»
mount /mnt/yandex
echo «Copy»
cp ~/yandex_test/* /mnt/yandex
while [ `find ~/.davfs2/cache/ -type f -not -name «index»|wc -l` -gt 0 ]; do
sleep 1
done
echo «Umount»
umount /mnt/yandex
Заодно померил скорость. Для двух файлов суммарным размером 258мб скрипт отрабатывал 7 минут 12 секунд. Т.е. скорость примерно 0.6 мегабит. Яндекс у моего провайдера локален. Возможно «Диск» не попадает в локальную сеть, пока в стадии «бетта».