Linux | Скопируйте открытые файлы в другой каталог и сохраняйте их синхронизированные

это один из способов сделать это:

src_dir=/tmp/in
target_dir=/tmp/out
year=2014

find ${src_dir} -maxdepth 1 -type f | while read f; do
  changed_in_desired_year=$(stat "$f" | egrep "Change:[ ]*${year}-")
  if [ -z "${changed_in_desired_year}" ]; then
    continue
  fi

  mv "$f" ${target_dir}
done

Интересным моментом является использование stat для получения статуса измененного / измененного / доступа к файлу .

0
22.02.2019, 15:13
1 ответ

Вы можете попробовать Chironfs, реплицирующую файловую систему FUSE, (реализованную в пользовательском пространстве; который доступен изhttps://github.com/tweksteen/chironfs).

После установки вы можете выполнить, например,. эти команды:

mkdir a a1 a2 a3
chironfs a1=a2=a3 a

С этого момента любой файл, записанный в a, будет мгновенно реплицирован в a1, a2и a3.

Каждый из этих каталогов может находиться на другом устройстве, их просто нужно смонтировать. Это полностью прозрачно для программ.

0
28.01.2020, 04:01

Теги

Похожие вопросы