#!/bin/bash printf "\e[0;32m数据写入硬盘中,请稍等\e[0m\n" #写入硬盘,防止数据丢失 sync;sync;sync printf "\e[5;33m正在清理缓存,请稍等\e[0m\n" sleep 10 echo 3 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 1 > /proc/sys/vm/drop_caches free -h
Linux 系统中欲写入硬盘的资料有的时候为了效率起见,会写到 filesystem buffer 中,这个 buffer 是一块记忆体空间,如果欲写入硬盘的资料存于此 buffer 中,而系统又突然断电的话,那么资料就会流失了,sync 指令会将存于 buffer 中的资料强制写入硬盘中。