除了 rm 之外就没有其他更安全的删除文件的方法吗?比如遇到删除系统核心的目录直接报错,或者提示没有权限,或者给强提醒,或者给个后悔药啥的。

283 天前
 helphelp

最起码不像 rm -rf 一样,删除/的话 什么提示都没有

看了这两天的热帖,有两个都是因为 rm -rf 误删的,我自己之前说实话也执行过,想问一下有好的方法吗?

5596 次点击
所在节点    程序员
73 条回复
realpg
283 天前
@Jirajine #19

管理的艺术就是行政命令和技术结合,该行政命令时候就不要技术解决,该技术解决的不依赖行政命令

而且,我已经从数据中心公司离职了 至少我治下的公司从来没出过任何这类事故,哪怕没有重大影响

因为运维的 shell 的操作都是通过堡垒系统,所有指令甚至所有键盘按键都是记录的,隐形风险操作随便数据库写个查询就能列出来,一次不长脑子未造成恶劣影响可以学习,可以巨额罚款填坑大家聚餐,多次不长脑子的运维都没任何补偿的滚蛋了
iseki
283 天前
@realpg 很危险啊,/* 这种东西尽量不要出现,rm -rf / 都能保护住,谁手滑敲成 rm -rf sth /* 一点机会都不会有
iseki
283 天前
没什么太好办法,不用 -f 也就那么回事,时间长了人一旦皮条了一点辙都没有。坚持双人检查可能更有意义
realpg
283 天前
@iseki #22
没接受过金钱的毒打的运维自然会打出/ *
iseki
283 天前
@realpg 我觉得这个还好,除非你当前在 / 下面,否则 rm -rf / 只会提示 preserved ,*也就删删当前目录,我提这个主要规避删根的···
Jirajine
283 天前
@realpg
因为你这种规范要求就和这个帖子 https://www.v2ex.com/t/816040 不准用 http put 一样没什么实际意义纯粹给人制造麻烦,GNU rm 已经内置了-i 和-I 的保护措施不用。顺便-f 根本是不必要的,很多人习惯 rm -rf 的原因是有些系统会默认 alias rm='rm -i',会导致批量删除时不加-f 会让每个文件都提示从而无法正常使用。
MrKrabs
283 天前
执行 rm 前要手机验证码
dimpleok
283 天前
可以试试这里提到的方法,https://zhuanlan.zhihu.com/p/658109345 (利用技术手段避免误删除根目录)
ZRS
283 天前
做运维工具,不要手操,手操禁止高危命令
bt7vip
282 天前
生产环境把 rm 设置成高危命令,删文件统一将文件 MV 到/tmp 目录,删除非/tmp 下文件直接报错。
realpg
282 天前
@Jirajine #26
良好的习惯比什么都重要

要不干啥那么多误删库的

下属员工习惯怎么培养的问题,我觉得我比你这种纯敲键盘没带过大运维的有经验


@iseki #25
说实话 我们实际生产中 大部分都是用且上级指名删整目录然后重建目录的办法

很少有之前谁提到的什么目录带特殊权限什么的骚操作

因为罚的太狠,随便查查操作历史就知道,干活的都很小心,各种反复确认

2017 年时候疫情前业绩好,在沈阳这种三线城市,基本运维(有夜班,除非极特殊情况比如大割接,不加班)年底能拿 6 月薪的奖金,入职后三个月内一次险性可以不处罚,其他时候一次半月奖金填大坑聚餐,两次险性行为全年绩效奖就全没有,月薪普遍 8K 的话,你瞎鸡儿搞哪怕没严重后果,搞两次半年工资就打水漂了

而且我之前提过,大部分场景,都是假终端,shell 操作的都是在特殊堡垒平台软件上,有二次包装,按键都是全记录分析的,这种场景是有能力拦截不正确高危操作的。

培养习惯更重要,因为总有时候需要本地操作很多敏感数据,当时我们的业务,有些数据你操作错一次是要蹲监狱的。
someday3
282 天前
就算有 windows 类似的回收站,你信不信,还是会有大量的人误删除,把回收站清空后发现又误删除。

无他,人的问题单纯的技术是解决不了的。

腾讯的云备份那么多流程,结果操作员精准避开所有规定的流程,导致数据丢失。在 nb 的流程、规范和技术都阻挡不住犯蠢的人。

操作删除和其他危险命令的时候自己警觉一点,看一下有没有敲错,目录对不对,有没有超权限,比什么技术都 nb 。
ochatokori
282 天前
我只会在外层用 tab 把路径补全出来,不会手写更不会进去用*
Jirajine
282 天前
@realpg #31 你不如干脆说只要记录审计加重罚让人小心操作就解决了。
你提供的推荐方式是错误的,只要目录的权限和当前 umask 不同、或所有用户/组与当前登录用户不同,从上级删除并重建就一定会把权限搞乱套。更不用说 xattr 等扩展属性、或者删掉了一个 btrfs subvolume 然后重建了一个普通的目录这种会为以后埋坑的现象。除非你的服务器是单用户的不然这种情况绝对不是“很少”而是很常见。
不要把你在特定场景的施行那一套“运维体操”当作一般建议。
iseki
282 天前
@realpg 嗯,我一般也是指明删整目录,打星号太危险了,每次涉及到通配符我都得停下来再三确认…
我们这倒是不罚款,但是总搞出事故也不是什么好事啊…我到现在还没有一次把人家线上目录删坏过。
不过你这样罚款它违反不违反劳动法
realpg
282 天前
@iseki #35

罚款不是目的,目的是养成习惯。习惯就是让你习惯公司规定写死的规则,你可以不理解,你可以嫌麻烦,你可以嫌这个很傻逼;这些弱智的规定都是有原因的,都是为了让傻瓜也能少犯错误。盲目自信才是出现各种奇葩问题的本质原因,在这里就是给你打掉自己自作聪明的机会,不遵守规则,就让你肉疼到死。

搞技术的,天生排斥管理,也不想深入学习管理,不站在管理的思维上考虑问题,这也是 35 岁危机的一个重大原因,上升空间自己给自己堵死了。

删除这个,基本日常每周培训的重点强调就是去上级删整个目录再重建。要么还有一个在 web 控制台的文件传输系统删除的办法。

开除以前的罚款大部分都是直接填坑进公司基金,也不上交公司,聚餐团建用,差额公司掏。只有没有绩效奖金这种是公司赚了。

小地方,这边招的素质参差不齐,虽然日常操作都是在高层假控制台上,总有特殊情况需要你本地操作的时候,以及协同客户操作客户的机器。日常习惯就是一点点积累的。

我们这边日常各种强调的就是多用 tab 补全,多按不犯错。vi 调配置里多按 esc 切模式等一系列基本建议,就是防止某一次出坑。

有些区域,业务比较敏感,真的是误操作会蹲监狱的。



至于劳动法,严格遵守。因为大老板是体制内高层领导出身,当地有头有脸,一切有法可依的地方合规做的特别好,本市在商界是不著名小企业,但是在当地政府那边是有一号的。

运维普通员工合同工资都是 5K 多,不出重大生产安全事故到手都 8K 多,严格遵守劳动法,在职过一年社保公积金技术都按上一年实发调整到 8K 左右。扣的只有合同没有一点承诺的 12 薪+过节费以外的个人绩效奖金。这部分在入职时候也是不说的,除非你是内推别人告诉你这公司有这待遇,否则都是你呆满 1 年你才知道有这比意外之财,4 月 1 日以后入职当年没有。

而且,这个是要连坐的,三次险性事故征候,或一次造成损失实际事故,根据损失评估,有明确标准,是团队,还是所在班次(倒班班次)、运维分公司,乃至全公司这个钱都没有。
aelloncs
282 天前
那不是自己业务不熟练能力不行还怪到工具上了?这种水平的还敢有管理员权限?啥公司啊?
ulosggs
282 天前
这个 realpg 一直强调自己的管理多么牛,怎么这么牛的管理者招过来的小弟全是菜鸡呢
inhzus
282 天前
alias rm mv
dabai0806
282 天前
https://github.com/andreafrancia/trash-cli

brew info trash-cli
pip install trash-cli

alias rm='trash-put'
alias rl='trash-list'
alias rr='trash-restore'

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/976664

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX