Разрешение одновременных перенаправлений вывода команды с файлом блокировки - PullRequest
0 голосов
/ 16 марта 2020

В рабочем процессе, где несколько процессов пытаются выполнить одну и ту же задачу одновременно, например:

fdisk -l /dev/sdc > sdc-geometry.txt

Давайте попробуем использовать файл блокировки, чтобы убедиться, что эти процессы не пытаются писать в одновременно с flock :

lock. sh

#!/bin/bash
sdx=$1
command=$2

flock --verbose --exclusive /root/lock-${sdx} $command

Использование файла блокировки для защиты операции записи приводит к ошибке перенаправления :

lock.sh sdc "fdisk -l /dev/sdc > sdc-geometry.txt"
flock: getting lock took 0.000002 seconds
flock: executing fdisk
Disk /dev/sdc: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors
...

fdisk: cannot open >: No such file or directory

..

Та же проблема, если я заменю '>' на '| tee '.

Есть предложения?

Это сообщение было отредактировано с учетом комментария Шона.

...