zoukankan      html  css  js  c++  java
  • shell日常脚本(centos6)

    MySQL本地备份,异机备份数据库,并清除七天前的备份文件(前提是异机配置了免密)

    #!/bin/bash

    #name:bakmysql.sh

    #This is a mysql backup

    #本地存放备份数据库目录

    backupdir=/bak/mysqlbak

    #如果文件夹不存在,创建文件夹

    if [ ! -d $backupdir ]; then

      mkdir $backupdir

    fi

    #定义时间

    time=` date +%Y%m%d%H `

    #备份数据库到本地

    /usr/bin/mysqldump -uroot -pqwer1234 --opt --all-databases  > $backupdir/$time-all.sql

    #只保留7天前的数据

    find $backupdir -name "name_*.sql" -type f -mtime +7 -exec rm {} ; > /dev/null 2>&1

    #把数据备份到异机

    scp -r  $backupdir  root@192.168.24.150:/opt

    本地备份,异机备份目录/www(前提是异机配置了免密)

    #!/bin/bash

    #name:wwwbackup

    #This is a web Backup

    #本地存放备份数据库目录

    bkdir=/wwwbackup

    #定义时间

    time=` date +%Y%m%d%H `

    #如果文件夹不存在,创建文件夹

    if [ ! -d $bkdir ]; then

      mkdir $bkdir

    fi

    #备份本地目录

    tar zcvf   $bkdir/$time-all.tar.gz /www

    #把数据备份到异机

    scp -r  $bkdir root@192.168.24.150:/opt/

     

    统计访问前10的ip五分钟内访问达到100报警

    #!/bin/bash

    #日志文件

    logfile=/usr/local/nginx/logs/

    #开始时间

    start_time=`date -d"$last_minutes minutes ago" +"%H:%M:%S"`

    #结束时间

    stop_time=`date +"%H:%M:%S"  -d '+5 minute'`

    #过滤出单位之间内的日志并统计最高ip及访问次数

    tac $logfile/access.log | awk -v st="$start_time" -v et="$stop_time" '{t=substr($4,RSTART+14,21);if(t>=st && t<=et) {print $0}}' | awk '{print $1}' | sort | uniq -c | sort -nr > $logfile/log_ip_top10

    ip_top=`cat $logfile/log_ip_top10 | head -1 | awk '{print $1}'`

    # 单位时间[5分钟]内单ip访问次数超过100次,则触发邮件报警

    if [[ $ip_top -gt 100 ]];then

    echo "发现短时间内大量访问的ip"|mail -s "网站访问警告" 623181912@qq.com

    fi

     

    实现判断10.0.0.0/24网络里,当前在线的IP有哪些,能ping通则认为在线
    #!/bin/bash
    for ip in `seq 1 255`
      do
        {
         ping -c 1 10.0.1.$ip > /dev/null 2>&1
         if [ $? -eq 0 ]; then
              echo 10.0.0.$ip UP
         else
              echo 10.0.0.$ip DOWN
         fi
       }&
    done
    wait

     

    使用for循环批量配置用户

    #!/bin/sh
    for i in `seq 1 5`                                           #赋值i 1-5
    do                                                                 #做
    useradd -G wheel student$i;                         #新建用户并加到wheel组
    echo  "123456" |passwd student$i --stdin;   #设置密码

    #换成下面这个密码为student$i后面跟5个随机字符

    #echo "student$i:`echo $RANDOM|md5sum|cut -c 1-5`"|passwd –stdinuser$i>/dev/null 2>&1

    done                                                               结束

     

    nginx日志切割脚本

    #!/bin/bash
    # 设置日志文件存放目录
    logs_path="/usr/local/nginx/logs/"
    # 设置pid文件路径为变量
    pid_path="/usr/local/nginx/logs/nginx.pid"
    # 重命名日志文件
    #"yesterday“备份昨天的日志

    #mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log

    #备份当前的日志文件
    mv ${logs_path}access.log ${logs_path}access_$(date  +"%Y%m%d").log    
    # 向nginx主进程发信号重新打开日志
    kill -USR1 `cat ${pid_path}`

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    查看nginx状态,如果没启动或者挂了,自动启动

    #!/bin/sh
    service nginx status
    if [ $? -ne 0  ];
    then
    service nginx start
    echo "已重新开启nginx"
    fi

  • 相关阅读:
    MongoDB的C#官方驱动InvalidOperationException异常的解决办法
    MongoDB的TruncationException异常解决方法
    分享Db4o的便捷封装类源码
    EOL conversion in notepad ++
    Creating and deleting branches within your repository
    GitHub Desktop Contributing to projects Working with your remote repository on GitHub or GitHub Enterprise
    亚洲第二!上海交通大学密码学和计算机安全学科方向位CSRankings2019年全球第39和亚洲第2
    python/pandas数据挖掘(十四)-groupby,聚合,分组级运算
    详解 Cookie,Session,Token
    一文彻底搞懂Cookie、Session、Token到底是什么
  • 原文地址:https://www.cnblogs.com/pengrj/p/8890597.html
Copyright © 2011-2022 走看看