Как я могу получить последовательный снимок каталога и все его дочерние элементы?

Исходный код для perf включен в исходное дерево ядра Linux под tools/perf.

3
07.06.2014, 00:12
2 ответа

Если вы знаете, какие процессы записывают в файлы в этом каталоге, вы можете заморозить их, используя kill -SIGSTOP , затем сделать резервную копию, а затем возобновить процессы с помощью kill -SIGCONT .

0
27.01.2020, 21:31

Я подозреваю, что он возвращает ошибку «Невыполнение вызова метода: ..», Поскольку он не может найти интерфейс WLAN0. Вы уверены, что ваша беспроводная карта фактически называется WLAN0. Fedora представила новую схему именования с версией 15, отклоняясь от обычного Ethx / WLANX ИМЕНА для сетевых устройств: более конкретная информация можно найти в Wiki

введите следующие команды в оболочке, чтобы найти имя Беспроводная карта (вывод образца, показанный ниже)

$ ifconfig
$ iwconfig

Sample outputs

wlp1s0    IEEE 802.11abg  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=200 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
lo        no wireless extensions.
p1p1      no wireless extensions.

Здесь беспроводной карту называется WLP1S0

-121--75057-

Для моих знаний атомность такой транзакции не может быть гарантирована Ext4 сама по себе без сотрудничества из приложения, который обращается к данным одновременно. Использование некоторого механизма снимка в основном устройстве Mapper также не будет работать, поскольку вы в основном должны размонтировать файловую систему (или, по меньшей мере, Remount-ro), чтобы получить согласованное состояние на уровне блочного устройства.

Я думаю, что без дополнительных знаний о поведении приложения это будет довольно сложно. Таким образом, самый простой выход выхода, вероятно, может изменить приложение каким-то образом (например, ввести LockFile). Если, однако, вам нужно лечить его как черный ящик, я собираюсь сделать несколько предположений об этом:

  1. Периодическая резервная копия приложения требуется только короткое время по сравнению с интервалом, на котором он Выполняется
  2. после завершения его резервного копирования, он закроет все ручки файлов до тех пор, пока следующий резервный запуск

на основании этих допущений я предложил бы оптимистичный подход. Просто поставить, просто попробуйте сделать регулярный, рекурсивный, не атомную копию каталога и проверьте после этого, если приложение коснулось любого из файлов. Если это сделало, это указывает на то, что ваша копия, к сожалению, совпадала с периодической самостоятельной резервной копией приложения. В этом случае откажитесь от копии, которую вы только что создали и попробуйте все это снова. Может быть, откажется в течение некоторого времени; Избегайте бесконечной петли с помощью ресурсов.

Вы можете реализовать это, используя механизм INOTIFY в Linux как средство просмотра файлов, которые вы хотите скопировать во время процесса. Если вы идете на простой сценарий Shell, посмотрите на Intify-Tools . Это упаковано на большинство дистрибутива. Я не совсем уверен, как INOTIFY ведет себя, когда файлы уже открыты, поэтому ссылаясь на предположение № 2, вы, вероятно, также хотите использовать LSOF , чтобы убедиться, что ваше приложение не имеет ручек открытых файлов на любом из Содержимое вашего исходного каталога. Сделайте это после , вы настраиваете неотъемлемые часы.

Так как я решил вашу ситуацию. Я надеюсь, что вы не против, если я пропущу наброску фактической реализации этого. Не стесняйтесь спросить меня, если что-то неясно.

1
27.01.2020, 21:31

Теги

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