Как прочитать файл, заблокированный другим процессом в Node.js?

#node.js #fs #file-locking

Вопрос:

Я хочу прочитать данные внутри файла, заблокированного другим процессом. Есть ли какой-либо собственный способ или пакет, который мог бы это сделать?

Попытка базового fs.readFileSync вызова приведет к EBUSY ошибке.

Комментарии:

1. Блокировка файлов происходит не просто так. Измените другой процесс, чтобы файл не был заблокирован для других читателей, и убедитесь, что это действительно безопасно. Сделайте копию файла до того, как он будет заблокирован. Кроме того, на какой операционной системе вы работаете?

2. Мне нужно создать автоматические резервные копии файлов, которые в настоящее время используются. Кроме того, у меня нет доступа к источнику процесса, который блокирует файл.

3. Файлы часто блокируются от других читателей, потому что файлы могут находиться в несогласованном состоянии, например, частично записаны или обновляются (в данный момент не подходят для резервного копирования). Что делают большинство систем резервного копирования, так это повторяют попытки время от времени, пока файл больше не будет заблокирован.