В рабочем процессе, где несколько процессов пытаются выполнить одну и ту же задачу одновременно, например:
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 '.
Есть предложения?
Это сообщение было отредактировано с учетом комментария Шона.