一、压缩指定目录下的文件并删除原文件

#!/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脚本二(压缩文件、过滤不需要的文件、检测进程)的更多相关文章

  1. 运维常用shell脚本一(系统指标巡检、自动创建用户、跳板机)

    一.系统指标巡检脚本 #!/bin/bash menu(){ cat <<EOF +---------------------------------------------+ | 日常巡 ...

  2. 运维常用shell脚本之日志清理

    1.创建一个日志清理脚本 #/bin/bash for i in `find /root/.pm2/logs -name "*.log"` do cat /dev/null > ...

  3. CentOS 下运维自动化 Shell 脚本之 expect

    CentOS 下运维自动化 Shell脚本之expect 一.预备知识: 1.在 Terminal 中反斜杠,即 "" 代表转义符,或称逃脱符.("echo -e与pri ...

  4. 转 如何不耍流氓的做运维之——SHELL脚本

    家都是文明人,尤其是做运维的,那叫一个斯文啊.怎么能耍流氓呢?赶紧看看,编写 SHELL 脚本如何能够不耍流氓. 下面的案例,我们以 MySQL 数据库备份 SHELL 脚本的案例来进行阐述. 不记录 ...

  5. Linux运维之shell脚本进阶篇

    一.if语句的使用 1)语法规则 if [条件] then 指令 fi 或 if [条件];then 指令 fi 提示:分号相当于命令换行,上面两种语法等同特殊写法:if[ -f"$file ...

  6. Linux运维之shell脚本

    一.bash漏洞 1)bash漏洞 bash漏洞是控制Linux计算机命令提示符的软件中存在的漏洞. bash是一个为GNU计划编写的Unix shell.它的名字是一系列缩写:Bourne-Agai ...

  7. 如何不耍流氓的做运维之-SHELL脚本

    前言 大家都是文明人,尤其是做运维的,那叫一个斯文啊.怎么能耍流氓呢?赶紧看看,编写SHELL脚本如何能够不耍流氓. 下面的案例,我们以MySQL数据库备份SHELL脚本的案例来进行阐述: 不记录日志 ...

  8. linux运维自动化shell脚本小工具

    linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...

  9. Linux运维之shell脚本基础知识

    1.bash中的算术运算 let运算符 [root@:vg_adn_tidbCkhsTest ~/tidb-bench/sysbench]#echo $i [root@:vg_adn_tidbCkhs ...

随机推荐

  1. Horovod Install

    Horovod documentation 安装 [Step1]安装Open MPI 注意: Open MPI 3.1.3 安装有些问题, 可以安装 Open MPI 3.1.2 或者 Open MP ...

  2. C语言-内存函数的实现(一)之memcpy

    C语言中的内存函数有如下这些 memcpy memmove memcmp memset 下面看看memcpy函数 memcpy 我们想想,之前有那个字符串拷贝的函数,即strcpy函数.都有拷贝的函数 ...

  3. Android使用ContentProvider初始化SDK库方案总结

    做Android SDK开发的时候,一般我们会将初始化的方法封装为,然后让调用SDK的开发者在Application的onCreate方法中进行初始化.但是目前一些主流的SDK框架,并没有提供相关的方 ...

  4. mvnw 找不到或无法加载主类,找不到符号,类

    如果你出现"找不到或无法加载主类"的问题,很有可能是maven的问题,你可以尝试一下这种办法: 问题:关于maven什么东西都没动,上午可能运行都好好的,下午可能就出现了这个问题, ...

  5. 4-socket套接字编程

    socket套接字编程 目标:根据socket模块提供的接口函数,进行组合使用完成基于tcp或者udp的网络编程. 套接字:完成上述目标的一种编程手段,编程方案. 套接字分类: 流式套接字(sock_ ...

  6. Laravel 队列功能 简单应用

    生成任务类 默认情况下,应用程序的所有可排队任务都存储在 app/Jobs 目录下.如果 app/Jobs 目录不存在,则会在运行 make:job Artisan 命令时将创建它.你可以使用 Art ...

  7. Day006 方法的定义和调用

    方法的定义 Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法: 方法包含一个方法头和一个方法体.下面是一个方法的所有部分: 修饰符:修饰符,这 ...

  8. Day002 Java开发环境搭建

    Java开发环境搭建 JDK.JRE.JVM JDK: Java Development Kit(包涵JRE) JRE: Java Runtime Environment(包涵JVM) JVM: Ja ...

  9. FreeSql之Expression表达式拼接参数扩展

    在FreeSql源码中Expression表达式拼接默认最多支持到5个泛型参数,当我们使用表关联比较多的时候,就需要进行扩展. 新建一个类,将命名空间改为System.Linq.Expressions ...

  10. layui在toolbar使用上传控件在reload后失效的问题解决

    问题描述 ​使用layui中的upload组件来上传文件,将按钮放了表格中的toolbar(头部工具栏中),碰到的问题是:第一次可以实现上传文件,但是第二次再上传文件的时候,点击按钮无效. 解决办法 ...