zoukankan      html  css  js  c++  java
  • Linux之常用Shell脚本总结

    一、简介
    本文将总结一些常用的shell脚本,方便以后工作中使用。

    二、shell脚本
    【a】定期备份mysql数据库,需结合cronb定时任务调度实现。

    #!/bin/bash
    #首先声明一些自定义变量

    #数据库备份路径
    DB_BAK_PATH=/data/db
    #当前时间
    CURRENTTIME=$(date +%Y%m%d_%H%M%S)
    #备份数据库名称
    DB_NAME=test_db_bak
    #用户名
    DB_USERNAME=root
    #密码
    DB_PASSWORD=0905
    #主机名称
    DB_HOSTNAME=localhost

    echo "=======数据库备份开始【备份路径: $DB_BAK_PATH/$CURRENTTIME.tar.gz 】========"


    #创建备份的路径,如果目录不存在,则先创建备份目录
    if [ ! -d "$DB_BAK_PATH/$CURRENTTIME" ]; then
    echo "备份目录不存在,准备创建备份目录"
    #创建备份目录
    mkdir -p "$DB_BAK_PATH/$CURRENTTIME"
    else
    echo "备份目录已存在"
    fi

    #另一种比较简便的写法(前面的命令为true,才执行 &&后面的命令)
    #[ ! -d "$DB_BAK_PATH/$CURRENTTIME" ] && mkdir -p "$DB_BAK_PATH/$CURRENTTIME"

    #使用mysqldump备份mysql数据库,并进行gzip压缩
    mysqldump -u${DB_USERNAME} -p${DB_PASSWORD} --host=$DB_HOSTNAME $DB_NAME | gzip > $DB_BAK_PATH/$CURRENTTIME/$CURRENTTIME.sql.gz

    #tar压缩
    cd $DB_BAK_PATH
    tar -zcvf $CURRENTTIME.tar.gz $CURRENTTIME

    #删除临时目录
    rm -rf $DB_BAK_PATH/$CURRENTTIME

    #删除一个月之前的数据库备份文件
    find $DB_BAK_PATH -mtime +30 -name "*.tar.gz" -exec rm -rf {} ;

    #数据库备份完成
    echo "========数据库备份成功【备份路径: $DB_BAK_PATH/$CURRENTTIME.tar.gz】==========="
    【b】批量创建Linux用户,并且属于同一个用户组wsh,要求用户名和密码一致。

    #!/bin/bash
    #批量创建Linux用户(user1 - user5),并且属于同一个用户组wsh,要求用户名和密码一致

    for I in $(seq 1 5)
    do
    #useradd 用户名 -g 用户组名
    useradd user$I -g wsh
    #修改密码
    echo user$I | passwd user$I --stdin
    done


    【c】将/test目录下大于10k的文件删除(常用于垃圾回收)

    #!/bin/bash
    #将/test中的大于10k的文件删除
    for tmp in $(ls /test)
    do
    if [ -f $tmp ]; then
    if [ $(ls -l $tmp|awk '{print $5}') -gt 10000 ]; then
    #删除文件
    rm -rf $tmp
    fi
    fi
    done


    【d】按时批量清除N天前文件(需要结合cronb定时任务调度实现)

    #!/bin/bash

    #定时清理30天之前的/data/目录下的后缀为.txt的文:wq!i件
    find /data/ -mtime +30 -name "*.txt" -exec rm -rf {} ;


    #/data:准备要进行清理的目录; 
    #-mtime:标准语句写法+30:查找30天前的文件;
    #".txt"表示查找扩展名为.txt的所有文件;
    #-exec:固定写法 ;
    #rm -rf:强制删除文件,包括目录 ;
    #{}  :将find的结果放到里面;
     

     
    ---------------------

  • 相关阅读:
    一个非常棒的jQuery 评分插件好东西要分享
    Visual Studio 2012 更新包2发布,附离线安装方法及下载
    ECC Copy Client 之后的SAP*登陆问题 沧海
    使用现有ECC数据库进行安装或者恢复系统 沧海
    SAP 登陆平衡(SAP Logon Balancing) 沧海
    Target host or target server ***** is not in operation mode 沧海
    如何获得系统设置参数列表 沧海
    IDES安装之后的配置 沧海
    关于Basware的使用随想 沧海
    Information About the SAP Load Generator (SGEN) 沧海
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11089236.html
Copyright © 2011-2022 走看看