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常用Shell脚本珍藏【转载】
我们在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运维常用的脚本.如何学好脚本,最关键的 ...
- 常用shell脚本命令
常用shell脚本命令 1.显示包含文字aaa的下一行的内容: sed -n '/aaa/{n;p;}' filename 2.删除当前行与下一行的内容: sed -i '/aaa/{N;d;}' f ...
- 如何在java程序中调用linux命令或者shell脚本
转自:http://blog.sina.com.cn/s/blog_6433391301019bpn.html 在java程序中如何调用linux的命令?如何调用shell脚本呢? 这里不得不提到ja ...
- Linux生产服务器Shell脚本分享
Linux生产服务器Shell脚本分享 2012-6-6 86市场网 linux 作为一名Linux/unix系统管理员,我经常遇到人问这个问题:shell能做什么?PHP这么强大,为什么不用PHP来 ...
- Linux下添加shell脚本使得nginx日志每天定时切割压缩
Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...
- linux下实现shell脚本自动连接mongodb数据库并创建索引
在linux下创建shell脚本
- 8个DBA最常用的监控Oracle数据库的常用shell脚本
本文介绍了8个常用的监控数据shell脚本.首先回顾了一些DBA常用的Unix命令,以及解释了如何通过Unix Cron来定时执行DBA脚本.网上也有好多类似的文章,但基本上都不能正常运行,花点时间重 ...
- 2019.11.13课堂实验之用Linux下的shell脚本完成两文本交替输出
有两个文本如下,实际中并不知道两文本各有多少行: 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccc ...
- Java执行cmd命令、bat脚本、linux命令,shell脚本等
1.Windows下执行cmd命令 如复制 D:\tmp\my.txt 到D:\tmp\my_by_only_cmd.txt 现文件如图示: 执行代码: private static void run ...
随机推荐
- windows下安装RabbitMQ消息服务器 + 读写队列
RabbitMQ是什么 ? RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.他遵循Mozilla Public License开源协议. 1:安装RabbitMQ需要先安装Erla ...
- codeforces 724C
在一个nxm的镜面二维空间内,向(1,1)发射一条射线,来回反射,当遇到四个角之一时光线消失. 给K个点,问K个点第一次被射中是什么时候(v = sqrt(2)) 解:注意到只有 2*(n+m)个对角 ...
- php大小写转换函数
1.将字符串转换成小写 strtolower(): 该函数将传入的字符串参数所有的字符都转换成小写,并以小定形式放回这个字 符串.例: <?php $str = "I want T ...
- Hibernate3--快速入门--第一天
1. Hibernate概述 Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架. a. 轻量级: 使用方便 (比Apache DbUtils 复杂很多倍 )这个概 ...
- python matplotlib相关 dateutil
dateutil: easy_install python_dateutil pyparsing: easy_install pyparsing
- 1.基础数据类型的初识 字符串 bool 整型 if else elif
---恢复内容开始--- 计算器基础知识 cpu :人类的大脑 运算和处理问题 内存:临时存储数据 断点就消失了 高铁 硬盘:永久存储数据 图片 操作系统:是一个软件 控制每个硬件之间的数据交互 Py ...
- Zookeeper(1、3、5节点)集群安装
1节点 1 week110的zookeeper的安装 + zookeeper提供少量数据的存储 3节点 hadoop-2.6.0.tar.gz的集群搭建(3节点) hadoop-2.6.0-cdh5. ...
- mysql文件系统
1 磁盘划分 在一台mysql服务器上,一般是sda做系统,sdb做数据,sdc做日志. 2 磁盘调度策略 linux默认调度策略是cfq,mysql上一般改为deadline echo 'deadl ...
- python之商品操作小程序
要求:写一个添加商品的程序,商品信息写入txt文件中,以二维字典形式比如:{‘小米’:{‘价格’:‘1999元’,‘数量’:10}} 1.添加商品 #商品名称 #价格 #数量 2.查看商品 3.删除商 ...
- JAVA字符串转日期或日期转字符串【转】
JAVA字符串转日期或日期转字符串[转] 文章中,用的API是SimpleDateFormat,它是属于java.text.SimpleDateFormat,所以请记得import进 来! 用法: S ...