Как сбросить кэш жесткого диска и диска флэш-памяти (или файловая система) из командной строки?

Я пишу резервный сценарий который

  1. Копирует данные в диск с резервной копией.
  2. Сбрасывает диск с резервной копией.
  3. Выполняет проверку целостности хеша.

Прежде чем я раньше делал sleep(60) для ожидания минуты так, чтобы данные были автоматически сброшены ядром. То, которое я предполагаю, является излишеством поэтому теперь, я пробую sudo hdparm -F --verbose /dev/disk но это сообщает об ошибке - HDIO_DRIVE_CMD(flushcache) failed: Invalid exchange многократно.

Я задаюсь вопросом, там любой стандартный способ сбросить кэш к жесткому диску. Я думаю, что существует то, потому что usb-creator-gtk он, umount он.

Я использую Ubuntu x64 9.10

PS: я стараюсь избегать "синхронизации", потому что эта страница говорит, что это не безопасно. http://ubuntuforums.org/showthread.php?t=589975

17
задан Vikrant Chaudhary 5 March 2010 в 02:47
поделиться

2 ответа

Достаточно ли sync ?

Edit: относительно вашего редактирования - вы пытаетесь избежать синхронизации, потому что какой-то парень в Интернете разместил отказ от ответственности CYA в своем сообщении? Может быть, что-то не так с синхронизацией, о чем я не знаю, но это может стоить второго поста само по себе.

Тем не менее, со страниц информации о Linux:

sync записывает все данные, находящиеся в буфере в памяти, на диск. Это может включать (но не ограничивается) модифицированные суперблоки, модифицированные inodes, и отложенные чтения и записи. Это должно быть реализовано ядром; Программа синхронизации не делает ничего, кроме выполнения системного вызова sync.

32
ответ дан 30 November 2019 в 12:00
поделиться

Вам нужен вызов функции fsync (man раздел 2), но если вы делаете это в скрипте, вы, вероятно, захотите использовать команду sync (man раздел 8), который просто вызывает sync ().

3
ответ дан 30 November 2019 в 12:00
поделиться
Другие вопросы по тегам:

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