I'm writing a backup script which
- Copies the data to backup disk.
- Flushes the backup disk.
- Performs a hash integrity check.
Before I used to do sleep(60) for waiting a minute so that data is automatically flushed by the kernel. Which I guess is overkill so now I'm trying sudo hdparm -F --verbose /dev/disk but it reports error - HDIO_DRIVE_CMD(flushcache) failed: Invalid exchange multiple times.
I'm wondering is there any standard way to flush the cache to hard disk. I think there is because usb-creator-gtk does it, umount does it.
I'm using Ubuntu x64 9.10
PS: I'm trying to avoid "sync" because this page says that it is not safe. http://ubuntuforums.org/showthread.php?t=589975