假设我们现在遇到这样一个问题,公司的关键资料copy到测试服务器上了,在直接将其删除后,仍然担心服务器供应商可以将其恢复,即便是通过fdisk进行重新格式化,也仍然存在被恢复的风险,鉴于此,我们需要编写一个脚本,创建很多小文件(5MB左右),之后不停在关键资料所在的磁盘中复制该文件,以使Linux的inode无法再被重新恢复,为了达到这里效果,我们需要先构造该文件,如:
代码如下 /> find . -name "*" > testfile/> ls -l testfile
-rwxr-xr-x. 1 root root 5123678 Dec 9 11:46 testfile
/> cat > test27.sh
#!/bin/sh
#1. 初始化计数器变量,其中max的值是根据当前需要填充的磁盘空间和testfile的大小计算出来的。
max=2000000
remainder=0
#2. 每次迭代counter变量都自增一,以保证每次生成不同的文件。当该值大于最大值时退出。
#3. 对计数器变量counter按1000取模,这样可以在每生成1000个文件时打印一次输出,以便看到覆盖的进度,输出时间则便于预估还需要多少时间可以完成。
#4. 创建单独的、用于存放这些覆盖文件的目录。
#5. 生成临时文件,如果写入失败打印出提示信息。
do
((counter=counter+1))
if [ #counter -ge $max ]; then
break
fi
((remainder=counter%1000))
if [ $remainder -eq 0 ]; then
echo -e "counter = $countert date = " $(date)
fi
mkdir -p /home/temp2
cat < testfile > "/home/temp/myfiles.$counter"
if [[ $? -ne 0 ]]; then
echo "Failed to wrtie file."
exit 1
fi
done
echo "Done"
CTRL+D
/> ./test27.sh
counter = 1000 Fri Dec 9 17:25:04 CST 2011
counter = 2000 Fri Dec 9 17:25:24 CST 2011
counter = 3000 Fri Dec 9 17:25:54 CST 2011
... ...
与此同时,可以通过执行下面的命令监控磁盘空间的使用率。
Every 2.0s: df -h Fri Dec 9 17:31:56 2011
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 3.9G 2.3G 1.4G 63% /
tmpfs 504M 100K 504M 1% /dev/shm
/dev/sda1 49M 36M 11M 77% /boot
/dev/sda3 15G 172M 14G 2% /home
我们也可以在执行的过程中通过pidstat命令监控脚本进程的每秒读写块数。
linux查看端口占用_linux shell命令之用小文件覆盖整个磁盘
http://m.bbyears.com/caozuoxitong/33204.html
推荐访问:linux安装mysql linux查看磁盘空间 linux学习