Linux之常用Shell脚本总结

Posted hyhy904

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的结果放到里面;
 

 

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

以上是关于Linux之常用Shell脚本总结的主要内容,如果未能解决你的问题,请参考以下文章

Linux使用之grep,shell脚本(一)

linux总结shell

Linux 脚本运维总结之Shell script

Linux之Shell脚本实战监控系统的磁盘空间使用率

Shell脚本基本命令大全

Linux 定时执行shell脚本命令之crontab