shell小功能脚本

一、每天两点打包指定文件,并删除七天前的打包
#!/bin/bash
 #获取当前时间
 nowtime=$(date +%Y%m%d)
 #确保/backup目录存在
 mkdir -p /root/backup
 #tar备份
 tar -czf /root/backup/${nowtime}-log_passwd_shadow.tar.gz /etc/passwd /etc/shadow /var/log
 #只保留七天的备份文件
find /root/backup -mtime +7 -type f -name "*.tar.gz" -exec rm -rf {} \;
二、传入一个网段,如192.168.50.,扫描该网段里的ip存活情况和对应端口开放状态,并记录到文件
#!/bin/bash
 #扫描端口函数
 scan_ports(){
  #定义常见的端口号
  ports=(22 80 3306 53 10050 10051 21 8080)
  #for 循环使用nc去扫描
  for ((i=0; i<${#ports[*]}; i++))
  do
   nc -z $1 ${ports[i]}
   if (($? == 0));then
    open_ports[i]=${ports[i]}
   fi
  done
  if (($2 == 1));then
   echo "$1 激活,开放了 ${open_ports[*]}端口" >> scan_result.log
  else
   echo "$1 未激活,开放了 ${open_ports[*]}端口" >> scan_result.log
  fi
 }
 #扫描局域网函数
 scan_lan(){
  #扫描探测
  for i in {1..254}
  do
   # (命令)& 开启子进程在后台运行,实现shell编程的多进程功能
   (ping -c 1 -w 1 $1$i &>/dev/null  #ping命令去探测
   if (( $? == 0 ));then
    scan_ports $1$i 1
   else
    scan_ports $1$i 0
   fi)&
  done
  #wait 等待上面的所有的子进程结束,然后退出整个脚本
  wait
 }
 >scan_result.log
 scan_lan $1
三、实现windows里的回收站功能

1、删除时备份

#!/bin/bash
 #传入当前目录下的一个文件或文件夹,把它放到回收站中
 #确保有回收站这个目录
 mkdir -p /root/recycle/recyclebin
 #记录原路径
 touch /root/recycle/recyclebin/.path
 original_path=`pwd`/$1
 echo $original_path >> /root/recycle/recyclebin/.path
 #移动到回收站
 mv $original_path /root/recycle/recyclebin
 if (($? == 0));then
  echo "已放到回收站"
 else
  exit
 fi

2、去回收站还原

#!/bin/bash
 #传入回收站下的一个文件名,并把他还原到之前的目录去
 #文件在回收站的路径
 recyclebin_path="/root/recycle/recyclebin/$1"
 #匹配到原来的路径
 restore_path=`grep $1 /root/recycle/recyclebin/.path`
 mv $recyclebin_path $restore_path
 if (($? == 0));then
  echo "已还原到原目录"
  #还原后就删除记录文件里的原路径
  sed -i "/${1}/d" /root/recycle/recyclebin/.path
 else
  exit
 fi
四、一键配置centos7国内yum源
#!/bin/bash
 yum install -y wget
 #备份之前的yum源
 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
 #下载国内yum源并更换
 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
 mv CentOS7-Base-163.repo /etc/yum.repos.d/CentOS-Base.repo
 #清除之前的缓存,重新加载yum
 yum clean all
 #新建一个缓存文件
 yum makecache
五、查看现在距出生过了多少天
#!/bin/bash
read -p "请输入你的生日(如2001-01-01):" bir
today=$(date +%s)
birthday=$(date -d ${bir} +%s)
days_second=$(($today - $birthday ))
day_day=$(( $days_second/86400))
echo "今天距离你的出生日期已经过去了$day_day天"
六、内存使用率超过80%就给予提醒,没有超过显示使用了多少,也给予提醒
#!/bin/bash
ctime=$(date +%Y%m%d%H%M%S)
log="/var/log/$0.log"
#得到总的内存和剩余的内存空间
total=$(free -m |grep Mem|awk '{print $2}')
m_free=$(free -m |grep Mem|awk '{print $4}')
#计算出内存的使用率
used_percent=$((100 - m_free*100/total ))
#判断给予提醒信息
if  (( used_percent >= 80 ))
then
 echo "警告!你的内存使用率超过80%,目前使用率是$used_percent" 
 echo "警告!你的内存使用率超过80%,目前使用率是$used_percent"  >$log
else
 echo  "你的内存使用率是$used_percent,还可以继续运行其他的程序,放心使用"
fi
七、一次性查看网关、ip、dns
#!bin/bash
ip_address=$(ip a|egrep "ens33$"|awk '{print substr($2,1,(length($2)-3))}')
echo "ip地址是:" $ip_address
ip_route=$(ip r|grep "default"|awk '{print $3}')
echo "默认路由是:"$ip_route
ip_dns=$(grep "nameserver" /etc/resolv.conf | awk '{print $2}')
echo "DNS地址:" $ip_dns
八、一键编译安装nginx
#!/bin/bash
 #安装依赖
 yum install epel-release -y
 yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc gcc-c++ autoconf automake make psmisc net-tools lsof vim wget
 #新建用户和组
 id lilin || useradd lilin -s /sbin/nologin
 #下载nginx软件包
 mkdir /lilin99 -p
 cd /lilin99
 wget https://nginx.org/download/nginx-1.21.4.tar.gz
 #解压软件
 tar -xf nginx-1.21.4.tar.gz
 cd nginx-1.21.4
 #编译前做好配置
 ./configure --prefix=/usr/local/sclilin99 --user=lilin --group=lilin --with-http_ssl_module --with-threads --with-http_v2_module --with-http_stub_status_module --with-stream --with-http_gunzip_module
 #判断配置是否成功
 if (( $? != 0 ));then
  echo "编译配置出错,已退出"
  exit
 fi
 #开始编译,启动两个进程,提高速度
 make -j 2
 #安装
 make install
 #修改PATH变量,方便执行nginx相关命令
 echo "PATH=$PATH:/usr/local/sclilin99/sbin" >> /root/.bashrc
 source /root/.bashrc
 #停一秒,让上一条命令执行完
 sleep 1
 #关闭防火墙并设置开机不启动,同时关闭selinux
 systemctl stop firewalld
 systemctl disable firewalld
 setenforce 0
 sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config
 #设置nginx开机自启
 chmod +x /etc/rc.d/rc.local
 echo "/usr/local/sclilin99/sbin/nginx" >> /etc/rc.local
 #修改nginx.conf的配置,例如:端口号、worker进程数、线程数、服务域名
 sed  -i '/worker_processes/ s/1/4/' /usr/local/sclilin99/conf/nginx.conf
 sed  -i '/worker_connections/ s/1024/2048/' /usr/local/sclilin99/conf/nginx.conf
 sed  -i -r '36c \\tlisten 80;' /usr/local/sclilin99/conf/nginx.conf
 sed  -i -r '37c \\tserver_name www.lilin.com;' /usr/local/sclilin99/conf/nginx.conf
 #杀死nginx进程
 killall -9 nginx
 #启动nginx
 /usr/local/sclilin99/sbin/nginx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值