shell脚本应用案例

实际的应用处理场景,从应用的角度举例子。
变量赋值不要有空格
变量赋值不要有空格
变量赋值不要有空格

eg1:读取单个文件

#!/bin/bash
# 文件路径
file_path=""

#文件存在校验
if [ -f ${file_path} ] then 
	echo "文件检测成功!"
else
	echo "文件不存在,请检查..."
	exit -1; #退出
fi
#循环读取文件内容
while read line 
do 
	echo ${line}
done < filename(${file_path})

eg2:读取目录下的所有文件

#!/bin/bash

# 1.指定目录
# 2.获取目录下的所有文件名称
# 3.循环读取每个文件的内容
dir=""

files=$(ls ${dir})

for file in ${files}; do 
	path="${dir}/${file}"
	echo "文件名:${path}"
	while read line
		do
			echo ${line}
	done < ${path}
done

eg3:查找文件内容是否包含字符串

#!/bin/bash
dir=""
file_name=`grep -rl 'good' ${dir}`
echo ${file_name}

grep详解

eg4:修改文件内容

#!/bin/bash
#有没有什么比较好的使用场景啊啊啊啊啊

sed详解

eg5:定时备份文件

备份文件脚本

#!/bin/bash
source_dir=
target_dir=

backup_file="${target_dir}/$(date +%Y%m%d%H%M%S).tar.gz"
# 如果目录不存在,创建新的目录
mkdir -p "${target_dir}" 

# 备份文件
tar -czvf "${backup_file}" "${source_dir}" 

#检查文件是否存在
if [ $? -eq 0 ]; then  
    echo "文件备份成功: ${backup_file}"  
else  
    echo "文件备份失败"  
fi

创建定时任务

#添加可执行权限
chmod +x backup.sh
#打开定时器
crontab -e
#创建定时任务
0 3 * * * 脚本目录

定时命令

eg6:解析配置文件

#!/bin/bash
param=`awk -F '分隔符' '/\['"$1"'\]/[a=1]a==1&&$1~/'"$2"'/{gsub(/[[:blank:]]*/,"",$2):printf("%s\t",$2);exit;}' 文件路径`
echo ${param}

配置文件格式

[path1]
key1分隔符value1

[path2]
key2分隔符value2

eg:密码和用户名转换成base64写在配置文件中

#!/bin/bash
param=`awk -F '==' '/\['"$1"'\]/{a=1}a==1&&$1~/'"$2"'/{gsub(/[[:blank:]]*/,"",$2);printf("%s\t",$2);exit;}' /opt/soft/test/param.conf`
echo $(echo -n ${param} | base64 --decode)

awk详解

eg7.kafka offset统计脚本

#!/bin/bash
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/datasophon/kafka/bin/
# Kafka broker地址
BOOTSTRAP_SERVERS=kafkaserver
# 消费者组名称
CONSUMER_GROUP=group
# 输出文件路径
OUTPUT_FILE=/data/log/kafka_offset/offset.log

# 获取当前时间戳
TIMESTAMP="---------------------"$(date +"%Y-%m-%d %H:%M:%S")"------------------------"

# 获取消费者偏移量信息
OFFSET_INFO=$(kafka-consumer-groups --bootstrap-server  kafkaserver  --describe --group $CONSUMER_GROUP)

#写出到文件
echo "$TIMESTAMP" >> $OUTPUT_FILE
echo "$OFFSET_INFO" | awk 'NR=1' >> $OUTPUT_FILE
echo "消费者偏移量已写入文件 $OUTPUT_FILE"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值