Итак, у меня есть 3 сервера, s1, s2 и d1, где d1 - сервер samba. Процесс, который у меня есть, заключается в том, что скрипт, запущенный на s1, генерирует файлы и копирует их в d1, s2, затем берет эти файлы из d1 и запускает на них некоторые процессы.Bash script: проверьте, открыт ли общий файл на другом сервере
Моя проблема в том, что на s2 мне нужно убедиться, что s1 полностью закончил запись файла на d1, прежде чем я его заберу. Это иногда большие файлы, поэтому возможно, что на основе установки crontab, которую я имею на s2, там может быть перекрытие, где s1 все еще пытается скопировать файл, когда s2 готов забрать его.
Моим первым наклонением было использование lsof, но это только говорит мне, какие файлы используются сервером, выполняющим эту команду, а не если другой сервер использует этот файл. любые идеи о том, как я могу проверить этот файл?
Что о 'flock'? Блокировка работает над NFS, но, честно говоря, я понятия не имею о самбе. – FatalError
@FatalError, так что вы говорите, что, когда s1 копирует файл, используйте flock, чтобы заблокировать файл, чтобы s2 не смог получить к нему доступ? Я не думаю, что я могу использовать любые команды, связанные с samba, так или иначе, так как они должны запускаться из d1. –