2023-10-10更新:

用tput sgr0进行属性还原时,在web页面输出会显示出一个(B符号,如下:

参考https://github.com/rburns/ansi-to-html/issues/25

解决方法是,增加一个变量:TERM=ansi

整体脚本如下:

 

 

2023-8-1更新:

dymotd:

color.awk:

 


2023-7-29更新:

去除了日历和时间显示,感觉很鸡肋,增加了进程使用CPU和Mem时的报警,合并了load为一条:

dynmotd:

 

color.awk:

 

2023-7-14更新:

颜色显示统一用tput:

 

另外, figlet字体文件可从这里下载: https://github.com/xero/figlet-fonts/tree/master

字体效果可以在这里看: https://devhints.io/figlet

 

2023-6-26更新:

美化了一下样式:

dynmotd:

color.awk:

某些情况下可能因为磁盘等原因, 导致df等命令执行时间长,导致登录不进服务器, 所以可以增加执行的超时时间:在/etc/profile中添加5秒超时:

timeout 5s /usr/local/bin/dynmotd

 

 

——

2023-4-28更新:

简化了一下显示,增加了显示条:

效果:

dynmotd:

 

color.awk:

附: 用python实现颜色效果:

 

 

2019-7-9更新:

花了几个晚上, 终于写好了,主要是格式不太好调,还有个坑:就是要显示的N行字符格式很重要, 直接shell赋值的如a=”aaa”跟用awk打印的字符, 最后用awk显示的时候,如果加上颜色显示, 字符长度是不一样的。

有几个坑:

  1. 每个汉字占两到四个字节, 所以加起来特别长, 在进行格式排版时很不容易排, 所以最好用英文.
  2. awk的NF设置时, 最好设置在外面, 如awk -F: 如果放到语句里面的话, 第一行会先读进缓冲区,  会导致第一行总是会区分不到分隔符, 这个坑试了好多次, 放到外面就没有问题了.
  3. awk做数字大小比较时, 如果直接比较的话, 会有问题, 处理方式是: 将数字剩1, 这样强制shell转换成数字再去比较
  4. 取机器IP地址时, 会取到广播地址(x.x.x.250/32), 所有过滤掉此地址
  5. 计算机系统负载百分比, 应该用vmstat 1 5来计算机5次做平均值, 但是为了增加ssh登录速度, 而只取一次的值

 

脚本如下:

color.awk

 

部署脚本为:

dynmotd.yml:

hosts.ini:

 

部署:

关闭连接确认, 可以打开/etc/ansible/ansible.cfg :

host_key_checking = False

然后在host.ini里增加: 10.3.15.[5:255] 就可以部署到所有此网段的机器上了

 

———————————– old ————————————————-

脚本为:

 

安装部署脚本:

效果图如下:

附: 各颜色对应:

 

Categories: OS

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *