tvk 2020-07-30
#!/bin/bash echo -e "\e[31mHostname: `hostname`\e[0m" echo -e "\e[32mIP: `hostname -I`\e[0m" echo -e "\e[33mOS Version: `cat /etc/os-release |grep "PRETTY"|cut -d‘=‘ -f2`\e[0m" echo -e "\e[34mKernel Version: `uname -r`\e[0m" echo -e "\e[35mCPU:`lscpu | grep "Model name"|tr -s ‘ ‘|cut -d: -f2`\e[0m" echo -e "\e[36mMemory Size:`lsmem | grep ‘online memory‘|tr -s ‘ ‘|cut -d: -f2`\e[0m" echo -e "\e[37mDisk Size:`fdisk -l|head -1|cut -d‘,‘ -f1|cut -d: -f2`\e[0m"
2、编写脚本 backup.sh,可实现每日将/etc/目录备份到/backup/etcYYYY-mm-dd中
#!/bin/bash DIR1="/etc" DIR2="/backup/etc`date +%F`" echo -e "\e[31mStarting backup...\e[0m" if [ -e `dirname $DIR2` ];then sleep 3 cp -av $DIR1 $DIR2 else mkdir `dirname $DIR2` sleep 3 cp -av $DIR1 $DIR2 fi echo -e "\e[31mBackup Finished...\e[0m"
3、编写脚本 disk.sh,显示当前硬盘分区中空间利用率大的值
#!/bin/bash echo -e "\e[34mDisk of max percentage is `df -h|tr -s ‘ ‘ :|grep ‘/dev/sd‘|cut -d: -f5|sort -nr|head -1`.\e[0m"
4、编写脚本 links.sh,显示正连接本主机的每个远程主机的IPv4地址和连接数,并按连接数从大到小排 序
#!/bin/bash echo -e "\e[35mConnections:\e[0m`netstat -tan|grep "ESTABLISHED"|tr -s ‘ ‘ :|cut -d: -f6|sort -nr|uniq -c`"
5、编写脚本 argsnum.sh,接受一个文件路径作为参数;如果参数个数小于1,则提示用户“至少应该给 一个参数”,并立即退出;如果参数个数不小于1,则显示第一个参数所指向的文件中的空白行数
#!/bin/bash read -p "请至少输入一个文件路径(作为参数):" ARG if [ $# -lt 0 ];then echo "至少应该给一个参数" exit else grep ‘^$‘ $ARG |wc -l fi
6、编写脚本 hostping.sh,接受一个主机的IPv4地址做为参数,测试是否可连通。如果能ping通,则提 示用户“该IP地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问”
#!/bin/bash read -p "请输入一个主机的IPv4地址:" IPADDR ping -c 1 -W 1 $IPADDR &> /dev/null if [ $? -eq 0 ];then echo -e "\e[31m此IP地址可访问\e[0m" else echo -e "\e[31m此IP地址不可访问\e[0m" fi
7、编写脚本 checkdisk.sh,检查磁盘分区空间和inode使用率,如果超过80%,就发广播警告空间将满
#!/bin/bash WARNING=80 SPACE_USED=`df -h|tr -s ‘ ‘ %|cut -d% -f5|sort -nr|head -1` INODE_USED=`df -hi |tr -s ‘ ‘ %|cut -d% -f5| sort -nr|head -1` if [ $SPACE_USED -gt $WARNING ] && [ $INODE_USED -gt $WARNING ];then mail -s DiskWarning root else echo "空间还很充裕" fi
8、编写脚本 per.sh,判断当前用户对指定参数文件,是否不可读并且不可写
#!/bin/bash read -p "请输入一个文件名:" FILENAME [ ! -r $FILENAME -a -w $FILENAME ] if [ $? -eq 0 ];then echo -e "\e[31m此用户对该文件不可读并且不可写\e[0m" else echo -e "\e[34m此用户对该文件可读或者可写\e[0m" fi
9、编写脚本 excute.sh ,判断参数文件是否为sh后的普通文件,如果是,添加所有人可执行权限, 否则提示用户非脚本文件
#!/bin/bash read -p "请输入一个文件:" FILENAME [[ "$FILENAME" =~ \.sh$ ]] && chmod +x $FILENAME || echo -e "\e[35m此文件为非脚本文件\e[0m"
10、编写脚本 nologin.sh和 login.sh,实现禁止和允许普通用户登录系统
#!/bin/bash FILE=/data/nologin [ ! -f FILE ] && touch /data/nologin && { echo "已禁止普通用户登陆系统"; exit ; } || { echo "已禁止普通用户"; exit ; } #!/bin/bash FILE=/data/nologin [ -f FILE ] && rm -rf /data/nologin && { echo "已禁止普通用户登陆系统"; exit ; } || { echo "已禁止普通用户"; exit ; }