您使用单个错误/错误输入/错误引导的命令行造成的最大损失(无论何种类型)是什么?例如,我前一段时间误删除了生产系统数据库,但是我很幸运(即已备份),并且没有永久性的数据丢失,金钱损失,财产损失等。
最重要的是(对于投票),您如何确保不会再次发生?
您使用单个错误/错误输入/错误引导的命令行造成的最大损失(无论何种类型)是什么?例如,我前一段时间误删除了生产系统数据库,但是我很幸运(即已备份),并且没有永久性的数据丢失,金钱损失,财产损失等。
最重要的是(对于投票),您如何确保不会再次发生?
Answers:
在SQL Server的生产系统上:
update customer set password = '' <enter>
最近的备份大约一个星期了。
为了减轻这种情况,我现在通常select
首先编写一条语句以确保该where
子句正确无误,然后返回并对其进行编辑以插入该set
子句并将该语句更改为update
。
最大的错误?以为我设定了两个变量,而没有设定两个变量。因此rm -rf $ VARIABLE / $ VARIABLE2变为rm -rf /。FreeBSD最近更新了他们的rm工具,因此由于这个错误,不可能再使用rm -rf /了!
shutdown -h now
用于本地工作站,但在通过生产服务器上的ssh登录时键入了它。从那时起,我始终在主机名中$PS1
。
从关闭命令中省略-r。在远程服务器上。在国家的另一边。远程办公室中没有IT人员。
我们都已经做到了,在这个阶段几乎就像是通过仪式。
在Solaris系统上:“ killall dataLoader”。
“ dataLoader”是我正在开发的应用程序。在Linux上,killall的作用类似于pkill。它向与作为参数给出的字符串匹配的进程发送信号。在Solaris上,killall尝试杀死当前用户可以杀死的系统上的所有东西。我是根。
java
肯定被杀了。;)
一次,很多月以前,我需要找到一个特定的可执行文件,但不记得它的全名(但可以记住几个字母)。所以我想我会用这样的东西检查/ usr / bin目录
rm /usr/bin/i*g*
奇怪。一无所有。弄清楚我刚才记错了第二个字母,我再次尝试
rm /usr/bin/i*
再说一遍,什么都没有。在对/ usr / local / bin,/ usr / sbin以及我可能认为的其他任何内容进行了相同的处理后,我意识到我一直在迷惑'ls'命令。
不太了解Brainfart的来源,但这绝对不是我再犯的错误。
尝试使用以下方法更改目录中所有内容(包括点文件)的所有权:
chown -R user * .*
猜猜那是什么?
打算销毁/ dev / sdb,幸运的是我有一个很好的最新备份
dd if=/dev/urandom of=/dev/sda
我最喜欢的是当我上大学时。我正在构建一个应用程序(我不记得是什么),而且由于我不是root用户,所以我用它来构建它
PREFIX=~username/usr/local
因此,我可以将其安装到我的主目录中。不幸的是它安装到
/home/username/src/app/~username/usr/local
代替。自然地删除它作为重新开始我执行
rm -rf ~username
在源目录中。
我想知道为什么要花这么长时间...
:-)
但是,最糟糕的是当我使用solaris工作站时,在完成所有设置后,我们希望擦除配置以进行实时配置。所以我执行了
sys-unconfig
同意警告消息,而不是重新引导计算机并返回到“出厂默认设置”,xterm窗口只是说
connection closed by foreign host.
这个故事的寓意不要让根主机在另一个主机上打开!永远!
许多年前,当我和一个由我的朋友(该项目的维护者)一起从事一个项目时,我在家里用php编写了一些东西。我们正在互相协作进行即时通讯。我们总是在游戏中来回嬉戏。
在进行Perl vs PHP的宗教战争时,我试图让ssh-agent在我的机器上正常工作。然后,我提到了一些有关ssh-agent的信息,需要评估(不确定我为什么这么说)。因此,他随后将此邮件发送给我,是为了帮助我解决我的问题(请记住,我已经扎根了):
\# eval $(echo ssh-agent |
perl -pe 's/h-a/m -r/' |
perl -pe 's/^ss/r/' |
perl -pe 's/gent/f \//')
警告!不要运行该命令!!!
如果删除eval并单独运行内部命令,则它是:
rm -rf /
我花了整整4秒钟的时间来注意发生了什么,但损坏已经造成了。我必须重新安装操作系统。幸运的是,除了/ etc iirc中的某些内容外,我的工作没有被抹掉。当我发给他一个恐怖的消息问他为什么这么做时,他笑得很厉害。我们都是长期的系统工程师。他认为我不会运行它,并且在进行简单的c&p'ing操作之前会更仔细地检查它,我只是信任他,所以我什至都不认为他在玩耍。不用说,这个小故事总是在我们之间出现。因此,我决定将其永生。
我如何缓解这种情况再次发生?我不相信任何人!
另一个不太有趣的故事是几年前,我在工作中的关键任务箱上做一些工作。我对其他机器开放了一些条件。我需要删除目录中的一些多余内容。好吧,我迷失了自己,无意间得到了回报。在我的本地目录中,但是在错误的主机上(错误的术语)!我在/ var / lib / mysql而不是在应用程序服务器上的/ tmp(不同的术语)中执行了命令。不用说,我消灭了生产数据库。幸运的是,当我和一位同事从备份和备用数据库重建主数据库时,我们有了一个热备用数据库。这花了大约18个小时。
缓解措施:在执行命令之前,请更加小心我在哪些窗口中执行命令。
我曾经想删除目录中的一堆文件。
del *.*
然后,计算机说:“你确定吗?[Y / N]”我想:“当然,我敢肯定,我就不会键入否则混账命令!啧愚蠢电脑叽 ......”
Y <enter>
C:\Windows>_
嗯... WTF?我只是删除Windows目录吗?
undelete *.*
在那些小型硬盘的日子里,我知道c:\ windows中的每个文件是做什么用的,它的名字是什么,但是即使取消删除所有内容后,系统也永远不一样。我对“您确定”提示有些尊重。一点点
rm -rf / some/path
代替
rm -rf /some/path
幸运的是我没有发生过;-)
网络(在远程计算机上)遇到问题,只想重新启动界面
ifconfig eth0 down && ifconfig eth0 upp
如今,在尝试这种操作之前,我要确保有人在机器附近(iptables也是不错的选择)。当没有人在那里时,我曾经打字
sleep 600; reboot
进入另一个(屏幕)终端,以便如果我在10分钟内无法按ctrl + c命令重新启动。
我也从该错误中了解到(ctrl + c,睡眠将运行重新启动),现在我使用
sleep 600 && reboot
这将使我能够ctrl + c。
shutdown -r +5
会在5分钟内重新启动系统,除非您shutdown
用killall shutdown
例如杀死进程。
一个免费的cookie,可以告诉我为什么我是一个白痴,因此试图删除所有隐藏的文件和目录的人:
rm -rf。*
..
硬链接匹配
曾几何时(可能是System III,但很久以前),可以*
通过使用正确的shell引用创建一个命名文件。当我在主目录中找到一个时,我输入了内容rm *
,但当我有些犹豫并思考时,我用手指按了返回键...
为其他用户创建这样的文件是一种常见的恶作剧。
如果文件位于目录中,则很难缓解。完全按照ls
显示的方式键入其名称的反射效果很强。
另一个(危害较小)的恶作剧是使用尾随空格(或仅空格)来命名文件,而这些空格很难删除...
由于重新启动后对一般JBoss脆弱性有一些不好的经验,我想在重新启动之前清除JBoss的工作文件。我通常会这样做:
# cd /var/cache/jboss
# rm -rf tmp/* work/*
为了保护自己免于键入许多可能的灾难性错误,例如:
我执行最后一条命令:
# sudo -u jboss rm -rf tmp/* work/*
由于JBoss用户将很难删除不属于它的任何关键文件。
我从未真正犯过这个错误,但是我确实可以做到。