Pet*_*ton 35 command-line-interface
您使用一个错误/错误输入/错误引导的命令行造成的最大损害(无论何种类型)是什么?例如,我不久前错误地删除了一个生产系统数据库,但我很幸运(即备份)并且没有永久性数据丢失、金钱损失、财产损失等。
最重要的是(对于选票),您如何确保它不再发生?
Gre*_*ill 46
在 SQL Server 中,在生产系统上:
update customer set password = '' <enter>
Run Code Online (Sandbox Code Playgroud)
最近的备份就像一个星期一样。
为了缓解这种情况,我现在通常先写一个select
语句以确保我的where
子句正确,然后返回并编辑它以插入set
子句并将语句更改为update
.
X-I*_*nce 37
最大的错误?以为我已经设置了两个变量,而我没有。所以 rm -rf $VARIABLE/$VARIABLE2 变成了 rm -rf /。FreeBSD 最近更新了他们的 rm 工具,因为这个错误, rm -rf / 不再可能了!
var*_*tec 26
shutdown -h now
Run Code Online (Sandbox Code Playgroud)
用于本地工作站,但在生产服务器上通过 ssh 登录时键入它。从那时起,我的$PS1
.
小智 25
在 VMS 系统上,我一直使用 ASSIGN DCL 命令来分配逻辑名称,并且我想调用以前的 ASSIGN 命令行。现在,在 VMS 中,您只需键入命令的尽可能多的字符以使其明确无误。所以我打算打字
记录屁股
但我不小心打字
请求屁股
反而。REQ 对 REQUEST 命令来说足够明确,它将参数广播给具有操作员 privs 的每个人(IT 中的每个人)。所以整个部门都收到了我的广播消息,只是“ASS”。
kby*_*yrd 24
在 Solaris 系统上:“killall dataLoader”。
“dataLoader”是我正在开发的应用程序。在 Linux 上,killall 的工作方式类似于 pkill。它向与作为参数给出的字符串匹配的进程发送信号。在 Solaris 上,killall 试图杀死当前用户可以杀死的系统上的所有内容。我是根。
cha*_*aos 16
尝试更改目录中所有内容的所有权,包括点文件,使用:
chown -R user * .*
Run Code Online (Sandbox Code Playgroud)
你猜怎么着那个呢?
gol*_*udo 16
很久以前,有一次,我需要找到一个特定的可执行文件,但不记得它的完整名称(但可以记住一些字母)。所以我想我会用这样的东西检查 /usr/bin 目录
rm /usr/bin/i*g*
Run Code Online (Sandbox Code Playgroud)
奇怪的。什么都没有回来。想到我刚刚记错了第二个字母,我又试了一次
rm /usr/bin/i*
Run Code Online (Sandbox Code Playgroud)
再次,什么都没有。在对 /usr/local/bin、/usr/sbin 以及我认为可能包含的任何其他内容执行相同操作后,我意识到我输入了错误的 'ls' 命令。
不太清楚脑放屁是从哪里来的,但这绝对不是我再犯的错误。
Zor*_*che 15
打算销毁/dev/sdb,幸运的是我有一个很好的最新备份
dd if=/dev/urandom of=/dev/sda
Run Code Online (Sandbox Code Playgroud)
Wal*_*enL 14
select * from <File1> join <file2>
Run Code Online (Sandbox Code Playgroud)
在生产箱上。注意缺少on
子句。:-) 两个表都是数百万行的表,这是在 90 年代中期的 AS/400 上,一旦 SQL 运行,您就无法杀死它。
Oct*_*Oct 14
在我们的一台数据生产服务器上,我的一个根输入:
chmod -R 777 /
因为他在使用某些脚本时遇到权限错误...
不久之后,他的私钥从所有服务器中删除,他负责数据生产服务器上的1TB数据恢复......
Vag*_*err 12
我最喜欢的是我在大学的时候。我正在构建一个应用程序(我不记得是什么),因为我不是 root,所以我用它构建了它
PREFIX=~username/usr/local
Run Code Online (Sandbox Code Playgroud)
所以我可以将它安装到我的主目录。不幸的是它安装到
/home/username/src/app/~username/usr/local
Run Code Online (Sandbox Code Playgroud)
反而。自然地删除它作为重新开始我执行
rm -rf ~username
Run Code Online (Sandbox Code Playgroud)
在源目录中。
我想知道为什么要花这么长时间......
:-)
然而,我最糟糕的一次是在使用 Solaris 工作站时,在完成所有设置后,我们想擦除配置以进行实时配置。所以我执行了
sys-unconfig
Run Code Online (Sandbox Code Playgroud)
同意警告消息,而不是机器重新启动并返回“出厂默认值” xterm 窗口只是说
connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)
故事寓意永远不要在另一台主机上打开 root shell!曾经!!
小智 12
许多年前,我在家里用 php 编写一些东西,同时与我的一个项目维护者的朋友一起工作。我们在合作中互相打招呼。我们总是在游戏中来回开玩笑。
当我们正在进行 Perl 与 PHP 的宗教战争时,我试图让 ssh-agent 在我的机器上正常工作。然后我提到了一些关于需要评估的 ssh-agent (不知道我为什么这么说)。然后他给我发了这条消息,所以我想,以帮助我解决我的问题(请记住,我被 su - 'ed to root):
\# eval $(echo ssh-agent |
perl -pe 's/h-a/m -r/' |
perl -pe 's/^ss/r/' |
perl -pe 's/gent/f \//')
Run Code Online (Sandbox Code Playgroud)
警告!不要运行那个命令!!!
如果您删除 eval 并自行运行内部命令,则为:
rm -rf /
Run Code Online (Sandbox Code Playgroud)
我花了 4 秒钟才注意到发生了什么,但损坏已经造成。我不得不重新安装我的操作系统。幸运的是,除了 /etc iirc.conf 中的一些内容外,我的任何工作都没有被抹去。当我给他发一条恐怖的信息问他为什么这样做时,他大笑起来。我们都是长期的系统工程师。他不认为我会运行它,并且在简单地 c&p'ing 之前会更仔细地检查它,我只是信任他,所以我什至不认为他在玩。不用说,这个小故事一直在我们之间发生。所以,我决定让它永垂不朽。
我是如何避免再次发生这种情况的?我相信没有人!
另一个不太有趣的故事是几年前我在工作中的一个关键任务盒子上做一些工作。我对不同的机器开放了几个条款。我需要删除目录中的一些多余的东西。好吧,我迷失了方向,不小心被 rm'ed 。在我的本地目录中,但在错误的主机上(错误的术语)!!。我在应用程序服务器上的 /var/lib/mysql 而不是 /tmp 中执行了命令(不同的术语)。不用说,我消灭了生产数据库。幸运的是,当我和一位同事从备份和备用数据库重建主数据库时,我们有一个热备用数据库。这花了大约 18 个小时来完成。
缓解措施:在执行命令之前更小心我在哪些窗口中执行命令。
BCS*_*BCS 11
简短版本
#/bin/bash
$0&
$0
Run Code Online (Sandbox Code Playgroud)
Mr.*_* 安宇 11
我曾经想删除目录中的一堆文件。
del *.*
Run Code Online (Sandbox Code Playgroud)
然后电脑说“你确定吗?[是/否]”我想“我当然确定,否则我不会输入该死的命令!Sheesh愚蠢的电脑抱怨......”
Y <enter>
C:\Windows>_
Run Code Online (Sandbox Code Playgroud)
嗯……WTF?我是不是刚刚删除了我的 Windows 目录?....
undelete *.*
Run Code Online (Sandbox Code Playgroud)
在小硬盘的那些日子里,我知道 c:\windows 中的每个文件的用途及其名称,但即使在取消删除所有内容后,系统也永远不会相同。我对“你确定吗”提示有点尊重。只是一点点。
小智 11
我认为我做过的最愚蠢的事情是删除面向外部的防火墙集群上的默认路由 - 同时 vpn 连接到我的桌面超过 100 英里。
幸运的是,它处于指定的计划停机时间(以防万一),但这并没有让我节省 200 英里的往返时间,去现场重新配置防火墙。在我的旅行和随后的修复期间,这也没有帮助我们取消了我们暴露在互联网上的生产系统。
我们都知道纳秒的定义。一个 ohno-second 甚至更小,它是点击“进入”和意识到你的错误之间的时间。
Bri*_*n G 11
两个中的第一个...
在 Solaris 机器上,我们有 AIX 机器的 tar 备份。
其中一位开发人员输入:
tax xvf AIX_Backup.tar
Run Code Online (Sandbox Code Playgroud)
当然,税收中的路径是绝对的,我们最终制作了一个新的 unix 发行版...... Solarix ......发行版的唯一问题是它没有启动:(
Jul*_*ano 10
故事告诉我:
另一个分支呼叫,因为他们的本地 PBX 有一些问题。经过一番调查,我们了解到他们更新了他们的服务器,但没有更新他们的 Asterisk 配置。因此,管理员决定指示分支人员重做配置。
管理员:“好的,现在,输入 rm -rf /etc/asterisk”
男:“好的。”
管理员:“现在,输入 cp /var/...”
盖伊:“等等,它还在运行……”
管理员:???...!!!
rm -rf / some/path
Run Code Online (Sandbox Code Playgroud)
代替
rm -rf /some/path
Run Code Online (Sandbox Code Playgroud)
幸运的是它没有发生在我身上;-)
小智 9
source ~/.bash_history
Run Code Online (Sandbox Code Playgroud)
我的意图是 source .bashrc,但我对 tab-complete 太仓促了......
类似的东西:
sudo dd if=/dev/zero of=/dev/sda
Run Code Online (Sandbox Code Playgroud)
我的意思是 sda4。我擦除了整个磁盘,而不仅仅是分区:-(
小智 8
XCOPY
是一个强大的野兽 - 它的执行是无情的,并且由于它的命令行参数与 WindowCOPY
和 UNIX 的cp
.
前几天不小心写到:
xcopy src \path\to\a\new\nonexistent\directory
Run Code Online (Sandbox Code Playgroud)
XCOPY
很友好地src
用......覆盖我的目录!而且它也没有费心将旧文件放入回收站。
哦,事实证明XCOPY
实际上覆盖了磁盘上的相同扇区而不是分配新扇区。我尝试了 3 个磁盘恢复程序,最好的一个只能恢复丢失的 10 个文件中的 3 个。当然,这 3 个文件只是vshost.exe
和它的伙伴。胀!
网络出现问题(在远程机器上),只想重新启动界面
ifconfig eth0 down && ifconfig eth0 upp
Run Code Online (Sandbox Code Playgroud)
现在,在尝试这样的事情之前,我确保有人在机器附近(iptables 也是一个不错的选择)。当没人在的时候,我曾经打过字
sleep 600; reboot
Run Code Online (Sandbox Code Playgroud)
进入另一个(屏幕)终端,以便如果我无法在 10 分钟内按 ctrl+c 命令重新启动。
我也从那个错误中吸取了教训(ctrl+c 睡眠将运行重新启动),现在我使用
sleep 600 && reboot
Run Code Online (Sandbox Code Playgroud)
这将使我能够 ctrl+c 它。
ifconfig eth0 down
Run Code Online (Sandbox Code Playgroud)
糟糕,我在eth0的外部。网络服务器在世界的另一端,在一个上锁的房间里。没有网络访问权限来登录或重新启动。废话。
在生产网络服务器上清理我的主文件夹时,我忘记了我已将服务器的 Web 根目录符号链接到我的主文件夹中的某个位置。没想到,我在那个文件夹上运行了 rm -rf ,接下来我知道,人们称该网站已关闭!
哎呀!
小智 5
我曾经比较两个文件夹中的数据并使用 -d 选项运行 rsync(删除目标上不在源上的文件)。然后我在运行 rsync 时切换了源和目标。这删除了我想要备份的所有新文件。现在我学会了使用 -n (dry-run) 运行 rsync。
rsync -trvd --stats --progress /destination /source
Run Code Online (Sandbox Code Playgroud)
我没有备份。
归档时间: |
|
查看次数: |
8933 次 |
最近记录: |