文档章节

彻底销毁你的Linux服务器

zigzagroad
 zigzagroad
发布于 2015/09/29 21:43
字数 970
阅读 1038
收藏 35

当我们租用Linux云主机时,如果服务即将到期,怎样彻底销毁你所租用Linux云主机呢?本文所转载的shell脚本可以非常彻底地销毁Linux云主机,并且对当前所使用硬盘采用执行N次覆盖写操作对数据进行彻底破坏(当然,对备份和快照没有作用)。

以下是shell脚本内容:

#!/bin/bash
#
# This script will absolutely kill a RHEL/CentOS/Fedora server. Use with extreme caution.
# Tested with several CentOS/RHEL versions only. Run as root user.
# 10.20.11 Paul Venezia (pvenezia@pvenezia.com)
#

zeroscript="/var/ramdisk/zeroscript.sh"

echo "*******************************************************************
** This will permanently kill this Linux system and erase every **
** local disk and filesystem. In other words, you better be **
** REALLY REALLY SURE you want to do this on this system. **
*******************************************************************"

echo -n "Are you absolutely sure you want to do this? [yes|no]: "; read yn

if [ -z $yn ] || [ $yn != "yes" ]; then
    echo "Aborting"
    exit 1
fi

echo -n "How many zeroing passes? "; read zeropass

if [ -z $zeropass ] || [ $zeropass -lt 1 ]; then
    echo "Invalid number of passes specified. Aborting."
    exit 1
fi

echo -n "Automatically shutdown? [yes|no] "; read asd
echo "Okay, here we go..."
echo "Making and populating ramdisk (512MB)..."

mkdir -p /var/ramdisk

mount -t tmpfs none /var/ramdisk -o size=512m # You may need to adjust this depending on the amount of RAM in the box

mkdir -p /var/ramdisk/var/run

for f in dev bin lib lib64 sbin etc; do
    cp -pr /$f /var/ramdisk
done

cp -pr /var/run /var/ramdisk/var

echo "Stopping services, it's probably safe to ignore any errors..."

for s in httpd acpid anacron atd auditd autofs avahi-daemon bluetooth cpuspeed crond cups firstboot gpm haldaemon hidd hplip irqbalance iscsi iscsid kudzu lm_sensors lvm2-monitor mcstrans mdmonitor messagebus microcode_ctl netfs nfslock pcscd portmap rawdevices readahead_early restorecond rpcgssd rpcidmapd sendmail smartd sshd syslog vmware-tools xfs yum-updatesd; do
    service $s stop
done

echo "Placing zeroing script..."

echo "#!/bin/bash" > $zeroscript

for i in `fdisk -l | grep Disk | awk '{print$2}' | sed -e s/:// | grep -v /dev/md`; do

    DU=$DU" "$i
    DSK=`basename $i`
    BLKS=$((`grep -w $DSK /proc/partitions | awk '{print$3}'` * 2)) # account for 512/1k blocksizes
    BS=512

    echo "echo \"Zeroing $i (dd if=/dev/zero of=$i bs=$BS count=$BLKS) ...\"" >> $zeroscript

    for (( c=1; c<=$zeropass; c++ )); do
        echo "echo \"Pass $c...\"" >> $zeroscript
        echo "dd if=/dev/zero of=$i bs=$BS count=$BLKS" >> $zeroscript
    done

    echo "dd if=/dev/zero of=$i bs=512 count=1" >> $zeroscript # Just to make sure

done

echo "echo \"Disk(s)$DU have been zeroed $zeropass times\"" >> $zeroscript

if [ $asd = 'yes' ]; then
    echo "echo \"Shutting down...\"" >> $zeroscript
    echo "sleep 5 && /sbin/poweroff -n -d -f" >> $zeroscript
fi

chmod +x $zeroscript

echo "Turning off swap..." && swapoff -a
echo "Entering chroot..."

chroot /var/ramdisk /`basename $zeroscript`

将上述shell保存为shell文件(如:destroyLinuxOS.sh)并授予可执行权限(chmod +x destroyLinuxOS.sh),执行该脚本时,要依次回答 “yes 、 2 、 yes” 才会真正开始彻底销毁Linux主机的程序,其中第一个 yes 表示同意开始执行shell(防止误执行),“2“为指定“覆盖写”的写次数(需要大于0),最后的 yes 表示完成“覆盖写”操作以后直接关机,如果回答不为 yes 则不关机。

分析上述脚本可知,首先(1)在内存中创建内存磁盘(可在执行上述脚本前根据当前系统的相关文件夹的磁盘占用情况修改上述脚本中的 mount 语句的 size 属性值为合适大小);然后(2)从当前系统的相应目录中复制相关文件到内存磁盘中;之后(3)开始停止当前系统中的已启动服务(可根据你的主机服务情况进行修改,注意不要停止 sshd 服务);最后(4)开始输出相关shell脚本到变量 zeroscript 指定的脚本文件中(该脚本用来(a)完成对磁盘进行覆盖写操作 [即:销毁磁盘数据],根据第三个输入内容决定(b)是否直接关机);在完成前面四项操作以后,(5)切换系统根路径到内存磁盘,并执行在 变量 zeroscript 中指定的脚本文件。over...


PS: 上述脚本来源于《如何将你的Linux服务器清空》文章所转载的内容。







本文转载自:http://soft.chinabyte.com/os/265/12473765.shtml

zigzagroad
粉丝 69
博文 17
码字总数 17890
作品 0
南昌
私信 提问
加载中

评论(5)

zigzagroad
zigzagroad 博主

引用来自“百世经纶之傲笑红尘”的评论

好坏,但我就是喜欢你这么能干

13
百世经纶之傲笑红尘
百世经纶之傲笑红尘
好坏,但我就是喜欢你这么能干
zigzagroad
zigzagroad 博主

引用来自“随风而飘”的评论

[13]机器会坏嘛?不会就没事(´-ω-`)

第二个回答时不要录入太大的数字 应该问题不大,毕竟它也是在写盘,和普通写盘区别不大。
随风而飘
随风而飘
[13]机器会坏嘛?不会就没事(´-ω-`)
zigzagroad
zigzagroad 博主
请谨慎执行文章中的shell脚本!否则后果自负413
Java|BIO、NIO、AIO

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/darlingwood2013/article/details/100066366 在很多面经里都有这样的...

叶晚林
08/25
0
0
不小心用winscp把linux服务器里的root文件件权限改成777,最后导致网站彻底进不去了,也无法通过各种工具连接服务器。。。如何解决?

不小心用winscp把linux服务器里的root文件件权限改成777,最后导致网站彻底进不去了,也无法通过各种工具连接服务器。。。如何解决?

不墨行者
2014/05/11
2.8K
13
Linux版本的 免费的人脸识别技术。

导读 虹软近日推出免费Linux版本人脸识别SDK引擎,这是继其Windows、Android、iOS的免费版本发布之后,对中小企业又一极具商用价值的版本,作为服务器OS的不二之选,Linux版本的发布无疑成为...

linuxprobe16
2017/10/26
178
0
科普帖:线程与进程

本文整理自我在 segmentfault 的问答。 这么解释问题吧: 单进程单线程:一个人在一个桌子上吃菜。 单进程多线程:多个人在同一个桌子上一起吃菜。 多进程单线程:多个人每个人在自己的桌子上...

justjavac
2013/09/17
1K
16
php中Session使用方法详解

php中Session使用方法详解 Session的声明与使用 Session的设置不同于Cookie,必须先启动,在PHP中必须调用sessionstart()。sessionstart()函数的语法格式如下: Bool session_start(void) /...

优惠券活动
2018/05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

IT兄弟连 HTML5教程 HTML5表单 小结及习题

小结 HTML表单提交的方法有get方法和post方法,get方法的作用是从指定的资源请求数据,post方法的作用是向指定的资源提交要被处理的数据。HTML表单一直都是Web的核心技术之一,有了它我们才能...

老码农的一亩三分地
18分钟前
11
0
向maven工程中导入自己封装好的jar包方法

1.打开cmd窗口 输入并执行:mvn install:install-file -DgroupId=com.test   -DartifactId=ptest -Dversion=0.1  -Dfile=E:\test\test-0.1.0.jar    -Dpackaging=jar注:Dgr......

gantaos
20分钟前
3
0
【jQuery基础学习】09 jQuery与前端(这章很水)

本文转载于:专业的前端网站➨【jQuery基础学习】09 jQuery与前端(这章很水) 这章主要是将如何将jQuery应用到网站中,或者说其实就是一些前端知识,对于我这种后端程序来说其实还是蛮有用的...

前端老手
31分钟前
10
0
深度科技与金山云完成兼容互认证 共同促进我国软件生态发展

近日,深度科技与金山云完成兼容互认证工作,经双方共同严格测试,深度操作系统ARM服务器版软件V15与金山云分布式数据库软件DragonBase V1.0相互兼容、稳定运行,可以为企业级应用提供全面保...

后浪涛涛
32分钟前
7
0
Less导入选项

Less 提供了CSS @import CSS规则的几个扩展,以提供更多的灵活性来处理外部文件。 语法: @import (keyword) "filename"; 以下是导入指令的相关详情: reference,使用较少的文件但不输出。 ...

凌兮洛
48分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部