运维常用shell脚本二(压缩文件、过滤不需要的文件、检测进程)
一、压缩指定目录下的文件并删除原文件
#!/bin/bash
ZIP_DAY=7
function zip {
local dir=$1
if [ -d $dir ];then
local file_num=`ls -l $dir |grep "^d"|wc -l`
if [ $file_num -ge $ZIP_DAY ];then
local tar_name=`ls -lt $dir | grep -v *.tar.gz | grep -v total | head -n 1 |awk '{print $9}'`
cd $dir
tar -czvPf $tar_name.tar.gz * --exclude=*.tar.gz >/dev/null 2>&1
if [[ $? -eq 0 ]];then
find $backup_dir/* -type d -exec rm -rf {} \; >/dev/null 2>&1
else
echo "失败"
fi
fi
fi
}
二、过滤文件夹下不需要的文件
#!/bin/bash
filter_array=()
all=`ls $dir | grep .log` //目录下所有的文件
gv=`ls -lt $dir | grep .log | awk '{print $9}' | head -5` //留前五条记录
function filter_array {
declare -a result_list
t=0
flag=0
all_array=(${all//\ / })
gv_array=(${gv//\ / })
for a in ${all_array[@]}
do
for g in ${gv_array[@]}
do
if [ "$a" == "$g" ]; then
flag=1
fi
done
if [ $flag -eq 0 ]; then
result_list[t]=$a
t=$((t+1))
else
flag=0
fi
done
filter_array=${result_list[*]}
}
三、远程服务器执行命令
#!/bin/bash
read -p "输入要连接的远程服务器IP:" IP
ssh root@$IP > /dev/null 2>&1 <<EOF
cd /usr/local
ls
exit
EOF
四、centos 7 流量转发
#!/bin/bash
function add {
firewall-cmd --zone=trusted --add-forward-port=port="本地端口":proto=tcp:toaddr= "目标主机ip":toport="目标主机端口" --permanent
firewall-cmd --reload
firewall-cmd --zone=trusted --list-all
} function remove {
firewall-cmd --zone=trusted --remove-forward-port=port="本地端口":proto=tcp:toaddr="目标ip":toport="目标主机端口" --permanent
firewall-cmd --reload
firewall-cmd --zone=trusted --list-all
}
五、循环检测进程是否被杀
#!/bin/bash
times=10
while(( "$times > 0" ))
do
pid=`ps aux | grep "nginx" | awk '{print $2}'`
if [[ -z $pid ]] ; then
return 0
fi
sleep 1
let "times--"
done
运维常用shell脚本二(压缩文件、过滤不需要的文件、检测进程)的更多相关文章
- 运维常用shell脚本一(系统指标巡检、自动创建用户、跳板机)
一.系统指标巡检脚本 #!/bin/bash menu(){ cat <<EOF +---------------------------------------------+ | 日常巡 ...
- 运维常用shell脚本之日志清理
1.创建一个日志清理脚本 #/bin/bash for i in `find /root/.pm2/logs -name "*.log"` do cat /dev/null > ...
- CentOS 下运维自动化 Shell 脚本之 expect
CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与pri ...
- 转 如何不耍流氓的做运维之——SHELL脚本
家都是文明人,尤其是做运维的,那叫一个斯文啊.怎么能耍流氓呢?赶紧看看,编写 SHELL 脚本如何能够不耍流氓. 下面的案例,我们以 MySQL 数据库备份 SHELL 脚本的案例来进行阐述. 不记录 ...
- Linux运维之shell脚本进阶篇
一.if语句的使用 1)语法规则 if [条件] then 指令 fi 或 if [条件];then 指令 fi 提示:分号相当于命令换行,上面两种语法等同特殊写法:if[ -f"$file ...
- Linux运维之shell脚本
一.bash漏洞 1)bash漏洞 bash漏洞是控制Linux计算机命令提示符的软件中存在的漏洞. bash是一个为GNU计划编写的Unix shell.它的名字是一系列缩写:Bourne-Agai ...
- 如何不耍流氓的做运维之-SHELL脚本
前言 大家都是文明人,尤其是做运维的,那叫一个斯文啊.怎么能耍流氓呢?赶紧看看,编写SHELL脚本如何能够不耍流氓. 下面的案例,我们以MySQL数据库备份SHELL脚本的案例来进行阐述: 不记录日志 ...
- linux运维自动化shell脚本小工具
linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...
- Linux运维之shell脚本基础知识
1.bash中的算术运算 let运算符 [root@:vg_adn_tidbCkhsTest ~/tidb-bench/sysbench]#echo $i [root@:vg_adn_tidbCkhs ...
随机推荐
- HTML5与CSS3新增特性笔记
HTML5 HTML5和HTML事件 注意:行内代码的为H5新增事件 Window事件属性: 针对 window 对象触发的事件(应用到 标签) onafterprint 文档打印之后运行的脚本 on ...
- Ambassador-09-prefix正则表达式
设置 prefix_regex: true,即prefix就可以设置成正则表达式 --- apiVersion: getambassador.io/v2 kind: Mapping metadata: ...
- 15. Vue2.4+新增属性.sync
.sync 在vue2.4以前,父组件向子组件传值用props:子组件不能直接更改父组件传入的值,需要通过$emit触发自定义事件,通知父组件改变后的值. 父组件: <template> ...
- WPF之小米Logo超圆角的实现
某些新闻:小米logo换新,程序员一行代码(border-radius:19px)实现,目前此行代码价值200万 某程序员内心:所以还是因为我代码写太少了,所以这200万才没有我的份吗? 这事儿也成功 ...
- 1082 Read Number in Chinese
Given an integer with no more than 9 digits, you are supposed to read it in the traditional Chinese ...
- 【Springboot】Springboot自动装配原理
1.核心注解就是 EnableAutoConfiguration 该注解会激活SpringBoot的自动装配功能: 代码如下: @Target(ElementType.TYPE) @Retentio ...
- 【Java集合】为什么HashMap的长度是2的N次幂?
这个问题应该倒过来思考,HashMap的长度是2的N次幂,有什么优势? 在HashMap的putVal()方法中,为了确定插入元素在table[]数组中的下标位置,使用的与(&)运算来计算 如 ...
- 我为Dexposed续一秒——论ART上运行时 Method AOP实现
转载于:http://weishu.me/2017/11/23/dexposed-on-art/ 两年前阿里开源了 Dexposed 项目,它能够在Dalvik上无侵入地实现运行时方法拦截,正如其介绍 ...
- Linux中使用gdb dump内存
在应急响应中,我们往往会有dump出某一块内存下来进行分析的必要.今天要讲的是利用gdb命令dump出sshd进程的内存. 按照 Linux 系统的设计哲学,内核只提供dump内存的机制,用户想要du ...
- MAC地址格式
随机配置一个mac地址,发现有的会报出Cannot assign requested address. 错误码是EADDRNOTAVAIL. 检查不是组播地址也不是全0地址. 组播地址就是第一个字节最 ...