• Shell脚本编程基础


    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小

    #!/bin/bash
    echo -e "e[1;31m当前主机系统信息如下:e[0m"
    echo -e "e[1;35m主机名:e[1;34m`hostname`e[0m"
    echo -e "e[1;35mIPv4地址:e[1;34m`ifconfig|egrep -o '([0-9]{,3}.){3}[0-9]{,3}'|head -1`e[0m"
    echo -e "e[1;35m操作系统版本:e[1;34m`cat /etc/centos-release|egrep -o '[0-9]{1,}.'|egrep -o '[0-9]{1,}'|head -1`e[0m"
    echo -e "e[1;35m内核版本:e[1;34m`uname -r`e[0m"
    echo -e "e[1;35mCPU型号:e[1;34m`lscpu|egrep 'Model n'|tr -s ' '|cut -d':' -f2`e[0m"
    echo -e "e[1;35m内存大小:e[1;34m`free -h|tr -s ' '|head -2|tail -1|cut -d' ' -f2`e[0m"
    echo -e "e[1;35m硬盘大小:e[1;34m`lsblk|egrep '^sd'|tr -s ' '|cut -d' ' -f4`e[0m"
    
    

    2、编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/root/etcYYYY-mm-dd中

    echo -e "e[1;31mStrart backupe[0m"
    sleep 2
    cp -av /etc/ /root/etc`date +%F`
    echo -e "e[1;31mBackup is finishede[0m"
    
    

    3、编写脚本/root/bin/disk.sh,显示当前硬盘分区中空间利用率最大的值

    echo -e "e[1;31m开始读取磁盘信息e[0m"
    sleep 2
    echo -e "e[1;35m磁盘分区中空间利用率最大的值:e[1;34m`df -h|egrep /dev/sd|tr -s ' ' '%'|cut -d'%' -f5|sort -r|head -1`e[0m"
    echo -e "e[1;35m空间利用率最大的硬盘分区:e[1;34m`df -h|egrep /dev/sd|tr -s ' ' '%'|sort -n -t% -k5|tail -1|cut -d% -f1`e[0m"
    
    

    4、编写脚本/root/bin/links.sh,显示正连接本主机的每个远程主机的IPv4地址和连接数,并按连接数从大到小排序

    echo -e "e[1;31m链接本机的远程主机IPv4地址和链接数如下:e[0m"
    echo -e "e[1;34m`netstat -nt|tr -s " "|cut -d" " -f5|grep -o "([0-9]{,3}.){3}[0-9]{,3}"|sort|uniq -c|sort -n`e[0m"   
    
    

    1、编写脚本/root/bin/sumid.sh,计算/etc/passwd文件中的第10个用户和第20用户的ID之和

    2、编写脚本/root/bin/sumspace.sh,传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和

    3、编写脚本/root/bin/sumfile.sh,统计/etc, /var, /usr目录中共有多少个一级子目录和文件

    1、编写脚本/root/bin/argsnum.sh,接受一个文件路径作为参数;如果参数个数小于1,则提示用户“至少应该给一个参数”,并立即退出;如果参数个数不小于1,则显示第一个参数所指向的文件中的空白行数

    2、编写脚本/root/bin/hostping.sh,接受一个主机的IPv4地址做为参数,测试是否可连通。如果能ping通,则提示用户“该IP地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问”

    3、编写脚本/root/bin/checkdisk.sh,检查磁盘分区空间和inode使用率,如果超过80%,就发广播警告空间将满

    1、编写脚本/bin/per.sh,判断当前用户对指定参数文件,是否不可读并且不可写

    2、编写脚本/root/bin/excute.sh ,判断参数文件是否为sh后缀的普通文件,如果是,添加所有人可执行权限,否则提示用户非脚本文件

    3、编写脚本/root/bin/nologin.sh和login.sh,实现禁止和充许普通用户登录系统

    1、让所有用户的PATH环境变量的值多出一个路径,例如:/usr/local/apache/bin

    2、用户root登录时,将命令指示符变成红色,并自动启用如下别名:
    rm=‘rm –i’
    cdnet=‘cd /etc/sysconfig/network-scripts/’
    editnet=‘vim /etc/sysconfig/network-scripts/ifcfg-eth0’
    editnet=‘vim /etc/sysconfig/network-scripts/ifcfg-eno16777736 或 ifcfg-ens33 ’ (如果系
    统是CentOS7)

    3、任意用户登录系统时,显示红色字体的警示提醒信息“Hi,dangerous!”

    4、编写生成脚本基本格式的脚本,包括作者,联系方式,版本,时间,描述等

    5、编写用户的环境初始化脚本reset.sh,包括别名,登录提示符,vim的设置,环境变量等

  • 相关阅读:
    SpringBoot集成Swagger2并配置多个包路径扫描
    SpringBoot基于EasyExcel解析Excel实现文件导出导入、读取写入
    SpringBoot + SpringSecurity + Quartz + Layui实现系统权限控制和定时任务
    Redis数据持久化(RDB、AOF)
    so安全编译选项(栈溢出保护)
    Python调用Chrome下载文件
    AtomicInteger如何保证线程安全以及乐观锁/悲观锁的概念
    SpringCloud:Eureka的健康检测机制
    共享锁(S锁)和排它锁(X锁)
    Collection接口及其常用子类(java.util包)
  • 原文地址:https://www.cnblogs.com/lqynkdcwy/p/9417485.html
Copyright © 2020-2023  润新知