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 {http://www.my516.com} ;

    #数据库备份完成
    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的结果放到里面;
    --------------------- 

  • 相关阅读:
    一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少
    Spring之創建Bean的三種方式
    mybatis單元測試成功,但是起服務測試失敗的原因:mybatis.xml配置錯了!
    HTML5 because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME c
    如何使用mybatis?(包括存储过程,函数,事务)
    IDEA 目录和package创建时的命名区别
    G.Greater and Greater
    C++ bitset容器用法简单介绍
    C.Cover the Tree
    阶乘位数
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11014037.html
Copyright © 2011-2022 走看看