我们有一些想法:
亮红色提示
在获得外壳之前先回答一个谜题
在获得外壳之前先键入一个随机单词
你们用什么技术来区分生产系统?
/>
#1 楼
红色提示是一个好主意,我也使用过。另一个技巧是在
/etc/motd
文件中放置一个大型的ASCII艺术警告。登录时会有类似的问候请注意:
_______ _ _ _____ _____ _____ _____ |__ __| | | |_ _|/ ____| |_ _|/ ____| /\ | | | |__| | | | | (___ | | | (___ / \ | | | __ | | | \___ \ | | \___ \ / /\ \ | | | | | |_| |_ ____) | _| |_ ____) | / ____ \ |_| |_| |_|_____|_____/ |_____|_____/ /_/ \_\ _____ _____ ____ _____ _ _ _____ _______ _____ ____ _ _ | __ \| __ \ / __ \| __ \| | | |/ ____|__ __|_ _/ __ \| \ | | | |__) | |__) | | | | | | | | | | | | | | || | | | \| | | ___/| _ /| | | | | | | | | | | | | | || | | | . ` | | | | | \ \| |__| | |__| | |__| | |____ | | _| || |__| | |\ | |_| |_| \_\____/|_____/ \____/ \_____| |_| |_____\____/|_| \_| __ __ _____ _ _ _____ _ _ ______ | \/ | /\ / ____| | | |_ _| \ | | ____| | \ / | / \ | | | |__| | | | | \| | |__ | |\/| | / /\ \| | | __ | | | | . ` | __| | | | |/ ____ \ |____| | | |_| |_| |\ | |____ |_| |_/_/ \_\_____|_| |_|_____|_| \_|______|
您可以在此网站上生成此类警告,也可以使用
figlet
命令。
像尼古拉斯·史密斯在评论中建议的那样,您可以使用
cowsay
命令为一些龙或其他动物加香料。除了使用/ etc / motd文件,您还可以在
cowsay
文件中调用figlet
或.profile
。评论
哦,我喜欢!
– Sionide21
2011年10月19日在18:46
如果您键入某些命令,您将不再看到该命令。
–指甲
11-10-19在19:02
没错,这就是红色提示派上用场的地方。
–肯尼·拉沙特(Kenny Rasschaert)
2011年10月19日在19:03
在Windows服务器上,我使用了明亮的粉红色桌面颜色和明亮的黄色标题栏/配色方案,因此它确实非常明显。这是我们的彩色命令提示符版本
–马克·亨德森(Mark Henderson)
2011-10-19 21:26
我想添加ASCII龙。
–尼古拉斯·史密斯
2011年10月20日15:15
#2 楼
不太一样,但是此网站建议您在更改生产系统时让开发人员戴上粉红色的草帽。您可能会有类似的规则将它们插入。评论
哈哈! +1是因为我笑了。但是,严重的是,人们在戴眼镜时会寻找失踪的眼镜,我怀疑帽子会起到“不断提醒”的作用。同样,它也无助于您记住哪个窗口。
– Felix Dombek
2011-10-20 9:38
是的,您必须将流程更改为:1)声明编辑作品的愿望。 2)取出草帽并关闭所有其他窗户。 3)在大家观看的同时做生产工作。 4)注销会话并删除草帽。
– Aric TenEyck
2011-10-20 14:36
“ 2)放宽草帽并关闭所有其他窗口”这对我的公司而言实际上是行不通的,因为这是我们所有SOP的第2步。步骤1当然是“开灯”,因为在关闭窗户的情况下,该办公室可能会变得很暗。
–Parthian Shot
14年7月17日在21:27
#3 楼
我使用的最大的是离散的命名方案,其中prod-system的命名明显不同于test / dev实例。这使“ Username @ Hostname:”样式提示明显不同。很明显,我不仅指的是不同的词,也包括不同的格式:示例:PRD-WEB001与DEVEL-BOB-WEB001
这有很多好处:
多余的叠合块使它成为三件套,而不是二件套。
第一个是不同的长度。
名称的总长度明显不同,这使得命令行间距相对于彼此以及窗口中的其他文本有所不同。
最好的是,它不需要特殊的终端-进行生产配置只是为了避免Oops错误。
以我的经验,您想要的东西可以不断提醒您自己的位置。诸如谜语之类的登录方法大约持续10秒钟,直到您忘记哪个窗口是哪个窗口为止。它所要做的就是在错误的目录中执行
ls
,以滚动显示不知名的登录横幅,将终端窗口埋入浏览器窗口中,同时进行谷歌搜索,将alt标签返回到错误的窗口,然后出现混乱情况。最好具有一些恒定的视觉提示,例如明显不同的命令提示符。评论
这对于基本系统确实非常有效,但是一旦您将dev- *更改为prod- *,开发人员就会抱怨和抱怨,因为他们一半的链接停止工作(无论您之前做过多少次),有时系统本身会半途而废,直到您在配置文件中修复所有对旧名称的引用。特别是在安装了专有软件的情况下,DNS别名只能起到很大作用。更糟糕的是,切换窗口时很容易完全忘记提示。
– SilverbackNet
11-10-22在7:17
开发人员需要创建可在开发/测试/登台/生产中使用的设置(这就是我所做的,但这是另一回事了)。有关bash的有效“红色提示”(比看起来更难),请访问serverfault.com/a/479718/79266,查看我的答案
– RichVel
13年2月17日在17:35
#4 楼
您需要记住的一件事是,这需要持久地进行提醒,而不仅仅是登录时的指示符。通常,某人会在不同的选项卡中同时运行多个shell,并在它们之间移动。一些将是开发人员,一些是生产人员。因此,在运行命令时,此时需要一个指示器。因此,以我的经验来看,特殊提示是最好的方法,修改后的标题/标签栏是对它的很好补充,可以轻松地找到正确的窗口/标签。所以我建议您彩色提示(红色是显而易见的选择),并且主机名全部大写,并且用户的行为(特权与非特权)与您的提示类似。一些示例:在您的shell启动文件中,通常是
set prompt = "%{3[1;44m%}`whoami`@`hostname -s`#%{3[0m%} "`
。这是蓝色的。用红色的
44
替换41
,绿色的42
替换。其他颜色和百搭图案也可用。评论
有关bash的有效“红色提示”(比看起来更难),请参阅serverfault.com/a/479718/79266上的答案-还显示git分支,当前目录被截断等。
– RichVel
13年2月17日在17:35
#5 楼
这些是我的建议:1)确保生产环境中的大多数命令(rm,chown,chmod,/ etc / init.d / *)都需要sudo访问
2)使用PS1 / PS2表示用户在Prod服务器中
bash-3.2$ export PS1="[\u@\h \W]$ "
这将显示命令提示符为
[sridhar@prodappserver901 conf]$
3)如果使用Putty / SSH客户端,则始终可以设置唯一的背景颜色/配置文件以使生产服务器脱颖而出。
评论
#1是一个有趣的想法,但不切实际,因为以守护程序用户身份运行的脚本可能需要使用rm,chmod等。
–赞·山猫
2011-10-19 23:38
#6 楼
只需考虑您的第二和第三个想法在初始连接过程中会有所帮助,但是当您打开多个终端并从一个终端移到另一个终端时,这毫无用处。 sysadmin1138可以使用命名的想法是可以的,但是在很多情况下不能使用。我发现唯一值得一提的是彩色提示。我喜欢绿色(用于开发/测试),红色(用于生产)和蓝色(用于DMZ中的机器)。这样,即使我有两台具有相同名称(在不同网络中)的机器(例如在准备更换机器时),我仍然可以轻松分辨出我所在的机器。
#7 楼
红色/特殊命令提示符很好。另一件事可能是使用TMOUT变量在这些计算机上更快地自动注销。如果您打开了许多窗口,则生产窗口将消失得更快。这应该导致其他行为:
开发
测试
对登台服务器进行更改
然后快速冲刺生产并在那里进行部署(就像您在登台服务器上所做的一样)
#8 楼
在具有普通root帐户的生产计算机上工作从来都不是一个好主意。拥有一个具有完全sudo权限的帐户。不允许保存sudo会话。禁止sudo su。为此使用单独的密码(而不是您的开发机器使用的密码)。可能需要调整sudo,以在执行命令之前通知外壳的生产身份(通过别名)。
这将使偶然的错误变得非常困难。红色提示永远不会伤人。
评论
用“ sudo su”表示“ sudo -i”或至少是“ sudo su-”,对吗?
– Sparr
11-10-20在11:34
哇!是斯帕!小世界 :)
– Sionide21
2011年10月20日14:07
阻止人们拥有根壳是不可能的。 (sudo bash)。您可以从任何“黑名单”设置中获取根shell。 (如果您谨慎的话,可以通过白名单设置将其停止,但是通常无法保证。)
–user606723
2011-10-20 15:16
它不应阻止对根shell的预期访问-只是人们习惯的一些常用方法,使他们可以在不注意的情况下下意识地进行操作。
– Mihails Strasuns
2011年10月20日16:09
#9 楼
我接受了红色的提示提示,发现查找.bashrc
的工作代码非常繁琐。 所以这是我的版本,准备包含在
.bashrc
-https://github.com/RichVel/nicer-bash-prompt中。它完全由主机名驱动,因此只要您具有适合生产主机名的模式(例如xyprod01
,xyprod02
等),它就可以很好地工作,并且您可以在所有环境中使用相同的.bashrc
。它看起来像这样:
这会在生产主机上创建一个更好的bash提示符,包括红色提示符-还向您显示当前git分支以及$ PWD中的最后2个目录。在bash中执行Ctrl / R(反向搜索)时,请注意避免弄乱提示显示。
还包括一个可选功能,可以在所有终端窗口中按照以下方式同步bash历史记录:回答。这很好,但并不是每个人都想要它,因此默认情况下它被禁用。
#10 楼
尽管我不知道您的IT设置是什么样的,但一种可能有效的解决方案是拥有一个特殊的空间,您必须以root身份将SSH进入生产服务器。如果您有一个数据中心,则它可能是服务器机房本身,但是拥有一个单独的物理位置(不进行“正常”工作)将非常有效地不断提醒您正在访问生产机器。评论
尽管这肯定是有效的,但在大多数情况下,它也会适得其反。
–约翰·加迪尼尔
2011-10-20 3:47
我同意约翰的观点,但这当然是要考虑的事情。
–user606723
2011年10月20日15:10
@JohnGardeniers:适得其反?您是说会损害生产力吗?
– LarsH
2011年10月20日16:59
@LarsH,不必要地进入不同的房间来完成工作的不同部分肯定会损害生产力。您的整个网络应该可以从一个位置进行管理。
–约翰·加迪尼尔
2011年10月20日在20:31
@JohnGardeniers:了解。当您最初说“适得其反”时,我想您的意思是说它的作用与既定目的相反,即不断提醒您正在访问生产机器。
– LarsH
2011年10月20日在21:21
#11 楼
只是对以上建议进行了调整。我将CDE用作我的Unix桌面以及通过.dt / dtwmrc中的菜单访问的所有生产系统。在所有dev和UAT系统上,我保持正常的配色方案,但在产品系统上,我将终端设置为红色背景。我不喜欢这种外观,但那是重点。eta-错过了Karol提出的基本相同的建议
#12 楼
登录生产机器时,会出现一段警告我这是生产机器,以及一些简短的准则。如果我认为不能独自安全地执行任务,可以打电话给UNIX支持,提醒我炸毁一台生产机可能会花费我的工作,并提醒我所做的一切都已记录。 >编辑:我在运输行业工作。
评论
哎哟。虽然我可以理解对此的需求,但很高兴我没有在这种环境中工作。
– LarsH
2011年10月20日下午16:58
我很高兴-我在交通部门工作,这些系统在停机时不仅会花钱,还会导致生命损失。
–罗勒
2011年10月20日17:57
很高兴您也这么小心!
– LarsH
2011年10月20日21:15
#13 楼
在PuTTY中,您可以将窗口的标题更改为特定已保存会话的默认名称以外的名称。无论您在窗口内做什么,它始终保留在窗口上。这也会显示在任务栏中。展开窗口,单击“行为”。在窗口标题中输入以下内容:
* * * * * * * * * * * * PRODUCTION * * * * * * * * * * * * PRODUCTION * * * * * * * * * * * *
#14 楼
简单的答案?在外壳配置中将外壳的颜色更改为红色。它将是显而易见的,并且设置起来很简单。不仅如此,而且与服务器头不同,在键入一些命令后它不会消失。#15 楼
这是我在Mac上执行的操作。对于每台服务器,我都会在〜/ .ssh / config文件中为其添加一个条目,例如Host app13
HostName server.example.com
User tom
PermitLocalCommand yes
LocalCommand osascript %d/bin/change_terminal_colours.scpt 12 35 35
建立SSH会话后便会触发此Applescript。它将终端背景色设置为提供的RGB值(如果未提供颜色值,则设置为默认值)。可能棘手的部分是拦截SSH会话的结束,以将颜色设置回默认值。为此,我将以下shell脚本创建为〜/ bin / ssh,以覆盖默认的ssh命令。这实际上是拦截并包装对SSH命令的所有调用。我尝试使用别名和函数,但此解决方案效果最佳:
#!/bin/bash
/usr/bin/ssh $@
osascript ~/bin/change_terminal_colours.scpt
这是change_terminal_colours.scpt脚本的来源。还将它放在您的〜/ bin目录中:
on run argv
tell application "Terminal"
# NOTE: Color values range from 0 to 65535.
if (count of argv) > 0 then
set backgroundColor to {(item 1 of argv) * 256, (item 2 of argv) * 256, (item 3 of argv) * 256}
else
set backgroundColor to background color of default settings
end if
try
set background color of (selected tab of front window) to backgroundColor
end try
end tell
end run
我一周前写了这个解决方案,从那以后一直在使用它。我希望其他人觉得它有价值。我发现它比Googling找到的任何解决方案都更好。
#16 楼
我的小组使用visionapp远程桌面(2017年编辑:该产品已重命名,但我认为是相同的)同时用于RDP到Windows计算机和SSH到Linux计算机。我们的连接按层分组到文件夹中并分配标签颜色。因此,无论何时我们打开生产连接-bam! -我们的脸上露出鲜红色:
如果您是一家大型Windows商店并且非常依赖RDP,那绝对是一笔值得的投资。我敢打赌,如果您只需要SSH,那么还有其他出色的工具。
#17 楼
除了独特的提示(这似乎是最可靠的解决方案)之外,如果您从同一工作站登录,则可以为SSH会话使用不同的配置文件。例如,我有生产系统的红色背景,开发的绿色背景,基础设施(路由器等)的蓝色背景,本地工作站的白色。如果您使用GNOME,则有一种简便的方法来启动与所需的SSH连接配置文件:
gnome-terminal --window-with-profile=production -e 'ssh root@production.example.com'
主要缺点-它是客户端,因此,如果要从其他位置访问服务器,则最好还是使用特殊提示。
#18 楼
另一种清楚表明您正在使用生产系统的方法是在生产系统上设置TMOUT(自动注销)功能。评论
究竟如何使它变得清楚?这也可能非常危险,因为命令或进程可能正在运行,并且由于注销会话而突然中止。
–约翰·加迪尼尔
2011年10月20日在1:24
我刚刚测试了TMOUT,看起来如果正在运行长时间运行的命令,它不会终止会话。仅当您坐在命令提示符下时,它才会终止它。尼尔斯也提出了这个建议,这对我来说很有意义。
– sjbotha
2011-10-20 15:16
这是TMOUT的真正好处。在发现TMOUT之前,我们使用了autolog甚至killerd。 autolog和killerd并不是很好。 killerd还是越野车,往往会阻塞一个完整的CPU ...
–指甲
2011年10月20日在20:29
#19 楼
由于在特定行业中工作时对法规的要求很高,因此这里记录了每个人的活动,以防将来发生任何纠纷。因此,访问也受到限制,您必须跳过一些“菜单”,这些菜单使您可以作为少数几个受信任的用户之一来访问计算机。通过设置此系统,人员必须有意识地选择PRODUCTION或QA环境,然后从列表中选择要访问的主机。这也有一个超时期限,因此您不会遇到登录产品主机并忘记第二天所处环境的情况。#20 楼
我在这里使用提示更改,就像其他人一样。它既快速又讨厌,但是可以很好地用于我的目的。在生产系统上,它将以普通用户的身份给您红色,在生产系统上以root的身份给您提供红色大写。它可以用更少的行写,但是我这样做是这样,所以我可以根据需要调整其他2种情况(非root-non prod)。
我们假设生产服务器不使用DHCP,但您可以使用任何其他方法来确定其生产系统。一切为您工作。
q4312078q
评论
尽管脚本很有趣,但是仅在生产系统上使用静态IP的假设并不常见。在大多数情况下,所有服务器在开发和生产中都将具有静态IP。
–马丁·海默斯(Martijn Heemels)
11-10-20在21:13
真正的课程。我们的开发系统使用dhcp保留。您可以使用任何适合您的系统,例如比较主机名,子网,VLAN等。
– Sirex
2011年10月21日,下午6:55
@Sirex,也可以相反。例如,Amazon EC2 VPS在生产服务器上使用静态DHCP租约,并转发公共IP。实例本身并不直接知道它背后运行的是哪个公共IP,至少在网络接口级别上是不知道的。
–马修·沙利(Matthew Scharley)
2011年10月22日,11:01
对。您总是可以拥有一个角色rpm软件包,该软件包创建/ etc / PRODUCTION文件并对此进行测试。无论您的船浮在水上。
– Sirex
2011-10-25 11:39
#21 楼
在生产机器上使用不同的(也许更长的)root密码。您可以创建特殊的sudo(或sudo包装器),以便为生产机器输出特殊的消息。
评论
..生产机器上的其他root密码?我为什么没想到呢?
–user606723
2011-10-20 15:08
另外,sudo已经有很多配置选项。如果您还不能做到这一点,我会感到惊讶。自定义sudo是一个糟糕的主意,因为对其进行测试不足以获取suid位。
–user606723
2011年10月20日15:08
#22 楼
在这里,我们具有默认的腻子配置,以使整个屏幕的前景色变为亮粉红色。产品:亮粉红色。
回归:浅绿色
模型:淡蓝色
Dev:正常
它很好用,但我确实喜欢这里的其他一些想法。
Pro:除非有什么不使用前景色..,每个产品屏幕
都是亮粉红色。
缺点:很明显,如果您通过除默认
putty配置以外的内容进行SSH操作,则此操作什么都不会执行。
#23 楼
在.bashrc / .bash_profile中echo " THIS IS THE PRODUCTION SYSTEM. BE RESPONSIBLE.. " ..
评论
有没有什么方法可以教人们避免使用生产系统?例如,如果您已将所有内容都签入Puppet,则只需登录生产系统以进行故障排除。您是否允许在生产系统上进行root ssh访问???? !!!!!
@symcbean:那不是Sionide所说的。在您SSH到您的用户帐户后,他本可以表示。
这个问题会成为社区Wiki的候选人吗?
您可以通过禁用SSH使其非常清楚,它是生产系统。没有比这更清楚的了。