前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shell(一)好的操作习惯

Shell(一)好的操作习惯

作者头像
一只羊
发布2019-07-27 19:03:24
4730
发布2019-07-27 19:03:24
举报
文章被收录于专栏:生信了生信了

前一段时间顺丰运维人员将生产数据库删除的传闻着实成为了新闻热词,如果传闻是真的,相信那位运维也是无心之过,可能只是一瞬的手误。但是代价太大了,业内人员都懂的。

其实,类似的新闻隔一段时间就会出现一次,从未断绝。想想也是,常在河边走哪有不湿鞋,现在互联网工程师那么多,难保有人不犯类似的错误。但是,如果有一个规范的流程和好的操作习惯,很多低级错误是可以避免的。

这个事件对我们生信人更是提了一个醒。据我的了解,绝大多数单位的生信团队规模都很小,对计算机集群的权限管理并不规范。一些团队里出现了共享root账户或者滥用sudo权限的现象。受此启发,我将一些我自认为好的操作习惯分享给大家,供大家参考。

1. root账户应由专人保管,普通用户不能滥用sudo权限。

2. 个人安装的软件尽量不要和系统公用软件冲突,否则可能会影响到其他用户。比如,如果系统默认的python版本是2.x,而你想要安装python3.x。那么你可以手动安装到自己家目录中的某个路径中,或者借助virtualenv实现虚拟化的python运行环境,这样不同的版本(项目)就互不干扰了。

3. rm命令的安全版本。“rm –rf /” 看到这个命令你有没有心跳加快!如果是,相信你已经领略过rm命令的巨大威力了,它可以将你的服务器删除得干干净净无残留,厉不厉害。我虽然没有手贱输入过“rm –rf /”这样的恐怖指令,但是我曾经也手抖输入过“rm *”,将一周辛苦写下的脚本全部删掉,一秒后我就后悔了,仰天长叹,欲哭无泪。事后我痛定思痛,觉得应该实现类似Windows系统中“回收站”的功能,将要删除的文件暂时先放到“回收站”中,而不是直接删除。具体做法如下:

a. 用rm2命令替代rm。

首先用which rm命令找到rm的路径/path/to/rm,比如下图中的/usr/bin/rm。

然后用rm2作为/path/to/rm的别名。在~/.bashrc配置文件的末尾添加一句: alias rm2=’/path/to/rm’,比如下图中的alias rm2=’/usr/bin/rm’。

b. 新建一个脚本文件saverm.sh,用来实现“回收站”的功能。

首先新建一个“回收站”文件夹,用来存储要被删除的文件。mkdir /path/to/Recycle。比如,mkdir ~/Recycle。

然后新建/path/to/saverm.sh(比如~/bin/saverm.sh)脚本,内容如下:mv $* /path/to/Recycle,如mv $* ~/Recycle。

/path/to/saverm.sh加上“可运行”的权限。运行chmod u+x /path/to/saverm.sh。比如,下图中的chmod u+x ~/bin/saverm.sh。

然后用rm作为/path/to/saverm.sh的别名。在~/.bashrc配置文件的末尾添加一行:alias rm=’/path/to/saverm.sh’。比如alias rm=’~/bin/saverm.sh’。

最后,别忘了重新加载配置文件~/.bashrc,使修改后的配置生效。运行命令:source ~/.bashrc。

至此,rm命令就变成“回收站”功能,而rm2才是真正的“删除”功能。运行rm,那么要被删除的文件就被放入“回收站”文件夹中,而运行rm2的话,要被删除的文件就真的从硬盘中被删除了。

4. 定时备份文件。

使用cron功能(crontab –e 命令)或者自行编写脚本进行文件的定时备份。

以上就是我这次要分享的全部内容,一家之言,仅供参考。谢谢大家!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信了 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档