美文网首页
为服务器登录增加欢迎信息2023-05-09

为服务器登录增加欢迎信息2023-05-09

作者: 土雕艺术家 | 来源:发表于2023-05-08 21:15 被阅读0次

    目标是实现ubuntu\Linux中每开启一个终端,就会自动执行脚本打印系统状态以及注意事项。

    1.ssh远程连接的终端,自动执行欢迎脚本

    将需要自动执行的脚本放置在相应的路径下就可以,非常简单。
    Linux中启动脚本位于/etc/profile.d/
    Ubuntu中启动脚本位于/etc/update-motd.d/
    放置好文件以后,开启新终端就可以出现欢迎信息了。
    可以执行权限确保可以执行。

    chmod 755 Welcome.sh
    

    2.桌面系统开启的终端,自动执行欢迎脚本

    上述的修改只使用于使用ssh远程连接的终端会执行欢迎脚本,但是如果在服务器本来的桌面系统中打开就不可以。
    一般使用服务器桌面系统就是公共账户,所以可以设置该账户每开启一个终端,就自动执行的命令,那么修改~/.bashrc
    可以就将欢迎脚本放置在用户目录下,文件名前加.可以隐藏文件。终端可以使用ls -a展示隐藏文件。
    通过vim ~/.bashrc再文件末尾,增加执行的欢迎脚本的命令

    .....
    
    bash  ~/.Welcome.sh
    

    然后再 source ~/.bashrc,再开启新的终端就可以出现欢迎信息了

    最后是欢迎脚本的全内容,复制可用

    #!/bin/bash
    
    #注意事项
    echo "----------------------------------------------------"
    echo "Welcome to Cai Lab!"
    echo -e "\t \033[31m### 服务器使用注意事项 ###\033[0m"
    attention_info="
    \t 1. 实验室是我家 \n 
    \t 2. 维持靠大家 \n
    \t 3. ..... \n
    #服务使用手册储存路径:/path \n"
    
    echo -e $attention_info
    
    
    #服务器状态提示
    echo "----------------------------------------------------"
    
    
    #System_info=`cat /etc/redhat-release`
    #echo "System Info: " $System_info
    #显示服务器信息可以根据情况选用
    IP=`uname -n`
    echo "IP address:" $IP
    vmstat 1 2 | tail -1 | awk '
    function draw_bar(percnet, total, fill, color)
    {
        for(i=0;i<percnet * total;i++)
            printf(color fill color_reset)
    }
    {
    
        color_white = "\033[37m"
        color_green = "\033[32m"
        color_yellow = "\033[33m"
        color_red = "\033[31m"
        color_reset = color_white
        fill_char = "#"
        bar_len = 30
    #执行`cat /proc/cpuinfo| grep "processor"| wc -l`获得服务器线程数量
    
        {
            cpu_total = 24 #这里需要填入服务器线程数量
            cpu_used = $13 + $14
            cpu_free = $15
            thread_used = cpu_used * cpu_total * 0.01
    
            printf("CPU: %d / %d Thread [", thread_used , cpu_total )
    
            draw_bar(cpu_used / 100, bar_len, fill_char, color_red)
            draw_bar(cpu_free / 100, bar_len, fill_char, color_green)
    
            printf(" %.1f%%]\n", cpu_used)
        }
    }'
    #uptime | awk -F "[ ,]" '{printf("CPU Load: %.2f  %.2f  %.2f\n", $(NF-2), $(NF-1), $(NF))}'
    free -k | awk '
    function draw_bar(percnet, total, fill, color)
    {
        for(i=0;i<percnet * total;i++)
            printf(color fill color_reset)
    }
    {
        color_white = "\033[37m"
        color_green = "\033[32m"
        color_yellow = "\033[33m"
        color_red = "\033[31m"
        color_reset = color_white
        fill_char = "#"
        bar_len = 30
    
        if(NR==2)
        {
            mem_total = $2
            mem_shard = $5
            mem_used = $3 + mem_shard
            mem_buffcache = $6
            mem_free = $4
            mem_available = $7
    
            printf("Memory: %.1f / %.1f Gb [", mem_used / 1024 / 1024, mem_total / 1024 / 1024)
    
            draw_bar(mem_used / mem_total, bar_len, fill_char, color_red)
            draw_bar(mem_available / mem_total, bar_len, fill_char, color_green)
    
            printf(" %.1f%%]\n", mem_used * 100 / mem_total)
        }
    }'
    #这里默认是获取根目录内容,如果有需要可以在 df 后面加分区挂载路径
    #比如 df /data
    df | awk '
    function draw_bar(percnet, total, fill, color)
    {
        for(i=0;i<percnet * total;i++)
            printf(color fill color_reset)
    }
    {
        color_white = "\033[37m"
        color_green = "\033[32m"
        color_yellow = "\033[33m"
        color_red = "\033[31m"
        color_reset = color_white
        fill_char = "#"
        bar_len = 30
        if($NF=="/")  #如果上面选择了指定路径 那么这里的"/"也要换,比如 if($NF=="/data")
        {
            disk_total = $2
            disk_used = $3
            disk_available = $4
            disk_used_progress = $5
    
            printf("Disk of lab: %.1f / %.1f T [", disk_used / 1024 / 1024 / 1024, disk_total / 1024 / 1024 / 1024)
    
            draw_bar(disk_used / disk_total, bar_len, fill_char, color_red)
            draw_bar(disk_available / disk_total, bar_len, fill_char, color_green)
    
            printf(" %s]\n", disk_used_progress)
        }
    }'
    
    echo "----------------------------------------------------"
    
    
    

    成果展示


    image.png

    参考的工作
    https://blog.csdn.net/weixin_30241919/article/details/97487860
    https://cloud.tencent.com/developer/beta/article/2206841

    相关文章

      网友评论

          本文标题:为服务器登录增加欢迎信息2023-05-09

          本文链接:https://www.haomeiwen.com/subject/vwilsdtx.html