
Shell
shell基础
亦良Cool
数通工程师一枚,喜欢编程和运维,记录学习中遇到的问题和相关的知识。博客用于记录、收藏、分享、学习等。
展开
-
linux 中过滤注释行和空白行的方法
过滤掉注释 cat http.conf.bak | grep -v "#" 过滤注释行和空白行 cat http.conf.bak | grep -Ev '^$|#'原创 2020-04-20 08:58:44 · 2028 阅读 · 1 评论 -
临时备份脚本
临时备份脚本##! /bin/bashcp -r /opt/data /root/data_bak/tar -Pcvf /root/data_bak/data$(date +%Y%m%d).tar.gz /root/data_bak/datarm -rf /root/data_bak/data/原创 2022-03-10 21:54:05 · 259 阅读 · 2 评论 -
shell脚本中的条件判断
7、条件判断条件判断语法格式格式1:test 条件表达式格式2:[ 条件表达式 ] #注意空格格式3:[[条件表达式]] #支持正则表达式条件判断的相关参数问:你要判断什么?答:我要判断文件类型,判断文件新旧,判断文件是否存在,判断字符串是否相等。。。。。判断文件类型红色字为重点,最常用判断参数含义-e判断文件是否存在(任何类型文件)-f判断文件是否存在,并且是一个普通文件-d判断文件是否存在,并且是一个目录-L判断文件是否原创 2022-01-29 14:02:09 · 3082 阅读 · 0 评论 -
sed命令基本使用
sed命令基本使用sed:Stream Editor文本流编辑,sed是一个“非交互式的”面向字符流的编辑器。能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上。还可以对原文件改动,但是不会再屏幕上返回结果。基本语法sed的命令格式: sed [option] 'sed command'filenamesed的脚本格式: sed [option] -f 'sed script'filename命令选项s 表示查找并替换-i 表示直接修原创 2022-01-11 20:22:11 · 447 阅读 · 0 评论 -
awk命令详解
awk命令参考资料:https://blog.youkuaiyun.com/u010502101/article/details/81839519AWK, 数据过滤工具 (类似于grep,比grep强大),属数据处理引擎,基于模式匹配检查输入文本,逐行处理并输出。通常用在Shell脚本中,获取指定的数据,单独使用时,可对文本数据做统计格式格式1:前置命令 | awk [选项] ‘条件{编辑指令}’格式2:awk [选项] ‘条件{编辑指令}’ 文件…编辑指令如果包含多条语句时,可以用分号分隔,处理原创 2022-01-10 21:51:38 · 1081 阅读 · 0 评论 -
shell脚本定期备份数据库和删除文件
如果我们需要提交或者备份代码,可以使用 git,但是如果是一些大的文件,需要定期的备份以及删除呢,我这里用到的是写一个shell 脚本,然后用 crontab 来每天定期执行。下面以备份数据库文件为例,写一个shell 脚本,定期备份和更新:#!/bin/bashecho '即将开始备份数据' #输出开始提示DATE=$(date +%y_%m_%d_data.sql) #以当天的年月日日期命名 #导出数据库作为备份文件mysqldump -uroot -p123456 -h192.原创 2022-01-10 11:01:31 · 353 阅读 · 0 评论 -
Linux下定时备份文件-脚本
定时备份脚本场景介绍运维中有时候需要定时备份一些重要的数据实验介绍/opt/data 我们需要定时自动备份这个目录里面的所有数据。准备脚本创建备份路径我们先创建备份的目录[root@localhost ~]# pwd/root[root@localhost ~]# mkdir root/data_bak准备脚本先将/opt/data这个目录复制到/root/data_bak/里面;为什么不直接进行将/opt/data压缩至/root/data_bak/data$(date "原创 2022-01-09 16:12:22 · 2007 阅读 · 0 评论 -
docker镜像打标签脚本
docker镜像打标签脚本#!/bin/bash# 下面的镜像应该去除"k8s.gcr.io/"的前缀,版本换成kubeadm config images list命令获取到的版本images=( kube-apiserver:v1.17.2 kube-controller-manager:v1.17.2 kube-scheduler:v1.17.2 kube-proxy:v1.17.12 pause:3.1 etcd:3.4.3-0 cored原创 2020-10-01 04:50:25 · 884 阅读 · 0 评论 -
shell脚本——关闭占用某一个端口的程序脚本
有时候我们经常要结束占用某些端口的程序。就会需要以下脚本:以下是redis的#!/bin/bashport=6379name=$(lsof -i:$port|tail -1|awk '"$1"!=""{print $2}')if [ -z $name ]then echo "No process can be used to killed!" exit 0fiid=$(lsof -i:$port|tail -1|awk '"$1"!=""{print $2}')kill -9 $id原创 2020-09-27 13:35:58 · 1300 阅读 · 2 评论 -
Centos7 一键搭建光盘yum源脚本
Centos7 一键搭建光盘yum源脚本#!/bin/bash#专为懒人设计read -p "确保光盘已经挂载在/media/cdrom/里了么?[y]" -t 30 valuecase $value in "y") echo [CDROM-YUM] >/etc/yum.repos.d/yum.repo echo name=CentOS-$releasever - Media >>/etc/yum.repos.d/yum.repo echo baseurl=fil原创 2020-09-20 15:15:19 · 229 阅读 · 0 评论 -
linux监控网卡流量脚本
linux监控网卡流量脚本#!/bin/bashin_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{print $1}')out_old=$(cat /proc/net/dev | grep eth0 | sed 's=^.*:==' | awk '{print $9}')while truedo sleep 1 in=$(cat /proc/net/dev | grep eth0 | sed 's=^.原创 2020-08-22 16:56:31 · 432 阅读 · 0 评论 -
shell脚本中删除和替换文件经常用到的命令sed详解
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法。原创 2020-05-19 10:23:37 · 796 阅读 · 1 评论 -
Shell脚本——批量检测网站是否异常并邮件通知
批量检测网站是否异常脚本检测网站运行是否正常,如果不能正常访问,发送邮件通知管理员curl -o /de/dev/null -s -w "%{http_code}" www.baidu.com结果演示访问失败,也又可能和网络等等原因有关。所以我们要进行次数判断,超出一定的次数。那就发送邮件。#!/bin/bash URL_LIST="www.baidu.com www.ctnrs.com www.der-matech.net.cn www.der-matech.com.c原创 2020-05-18 21:53:14 · 790 阅读 · 3 评论 -
Shell脚本——查看网卡的实时流量
查看网卡的实时流量#!/bin/basheth0=$1echo -e "流量进入--流量传出 "while true; do old_in=$(cat /proc/net/dev |grep $eth0 |awk '{print $2}') old_out=$(cat /proc/net/dev |grep $eth0 |awk '{print $10}') sleep 1 new_in=$(cat /proc/net/dev |grep $eth0 |awk '{prin原创 2020-05-18 21:46:16 · 1022 阅读 · 0 评论 -
shell脚本——找出占用CPU 内存过高的进程前10位
背景:服务器CPU占用高,找出最高的分析,看是否进程正确,是否是垃圾进程找出占用CPU 内存过高的进程前10位echo "-------------------CUP占用前10排序--------------------------------"ps -eo user,pid,pcpu,pmem,args --sort=-pcpu |head -n 10echo "-------------------内存占用前10排序--------------------------------"ps原创 2020-05-18 21:44:05 · 3280 阅读 · 0 评论 -
Shell 一键查看服务器利用率
一键查看服务器利用率背景:web访问过慢,服务器内存搞cpu 60% 内存 利用率 硬盘 利用率 TCP连接状态脚本编写#!/bin/bashfunction cpu(){ util=$(vmstat | awk '{if(NR==3)print $13+$14}') iowait=$(vmstat | awk '{if(NR==3)print $16}') echo "CPU -使用率:${util}% ,等待磁盘IO相应使用率:${iowait...原创 2020-05-18 21:39:30 · 337 阅读 · 0 评论 -
批量创建多个用户并设置密码
企业级-Shell案例3——批量创建多个用户并设置密码批量创建多个用户并设置密码背景:多名新人入职一、单个用户创建添加用户 useradd zhang改密码 passwd zhang脚本编写#!/bin/bashUSER_LIST=$@USER_FILE=./user.infofor USER in $USER_LIST;do if ! id $USER &>/dev/null; then PASS=$(echo $RANDOM.原创 2020-05-18 21:23:08 · 2835 阅读 · 0 评论 -
10台服务器系统配置初始化-脚本
服务器系统配置初始化背景:新购买10台服务器并已安装Linux操作系统需求:安装系统新能分析工具已经其他的工具 设置时区并同步时间 禁用selinux 清空防火墙默认策源 历史命令显示操作时间 禁止root远程登录 禁止定时任务发送邮件 设置最大打开文件数 减少Swap使用 系统内核参数的优化#/bin/bash# 安装系统性能分析工具及其他yum install gcc make autoconf vim sysstat net-tools iostat iftop原创 2020-05-18 21:12:33 · 937 阅读 · 0 评论 -
shell脚本大全-个人收藏
删除用户脚本: 1 #!/usr/bin/bash 2 #删除用户脚本 3 #v1.0 pokes 2020-4-4 4 5 6 read -p "请输入要删除的用户:" user 7 8 id $user &>/dev/null 9 if [ $? -ne 0 ];then 10 echo "没有$user这个用户,请...原创 2020-05-18 21:09:18 · 595 阅读 · 0 评论 -
FTP服务器用户创建脚本
公司的FTP服务器创建用户有几次操作还是比较麻烦的,新来的IT是应届毕业生。操作起来还是有点生疏。所以给他写了一个脚本FTP搭建详细教程https://blog.youkuaiyun.com/annita2019/article/details/92004340此脚本是专门针对上面的FTP搭建教程而写:#!/usr/bin/bash#FTP服务器用户创建脚本#作者:pokes@163.comread -p "请输入要新建的用户:" xinuser#判断新建用户是否存在id $xinus原创 2020-05-18 20:58:11 · 633 阅读 · 0 评论 -
Shell编程入门汇总
参考资料:https://blog.youkuaiyun.com/jiede1/article/details/786626081.shell是什么Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thomp...原创 2020-05-12 22:38:05 · 282 阅读 · 0 评论 -
Linux Shell 输出/输入重定向
一、硬件设备和文件描述符计算机的硬件设备有很多,常见的输入设备有键盘、鼠标、麦克风、手写板等,输出设备有显示器、投影仪、打印机等。不过,在 Linux 中,标准输入设备指的是键盘,标准输出设备指的是显示器。Linux 中一切皆文件,包括标准输入设备(键盘)和标准输出设备(显示器)在内的所有计算机硬件都是文件。为了表示和区分已经打开的文件,Linux 会给每个文件分配一个 ID,这个 ID 就是一个整数,被称为文件描述符(File Descriptor)。表1:与输入输出有关的文件描述符文件描原创 2020-05-09 18:33:57 · 630 阅读 · 0 评论 -
Linux shell编程-变量
bash主要的变量类型有:用户自定义变量、环境变量、位置参数变量、预定义变量1.用户自定义变量linux中默认的变量都是字符串型(注意:变量赋值时,“=”前后不能有空格)[root@hadoop200 ~]# x=1[root@hadoop200 ~]# y=2[root@hadoop200 ~]# echo $x+$y1+2[root@hadoop200 ~]#变...原创 2020-04-23 20:25:52 · 209 阅读 · 0 评论 -
Linux shell编程-运算符详解
默认情况下shell的变量类型都是字符型1.使用declare声明变量类型declare [+/-][选项] 变量名-:给变量设定类型属性+:取消变量类型属性-a:声明为数组-i:声明为整型-x:声明为环境变量-r:声明为只读-p:显示变量被声明的类型使用declare声明类型[root@hadoop200 ~]# aa=11[root@had...原创 2020-04-23 20:30:53 · 286 阅读 · 0 评论 -
Linux shell编程-条件判断
太多了,没记住。每次写都要去翻,整理一下存到这里方便查询。1. shell条件判断式语句之按文件类型判断-b 文件 判断该文件是否存在,并且是否为块设备文件(是块设备文件则为真) -c 文件 判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真) -d 文件 判断该文件是否存在,并且是否为目标文件(是目录为真) -e 文件 判断该文件是否存在(...原创 2020-04-23 18:10:52 · 400 阅读 · 1 评论 -
Linux shell编程-流程控制
1、if语句单分支if语句#!/bin/bashtemp=$(env | grep USER | cut -d "=" -f 2)if [ "$temp" == "root" ] then echo "hello root"fi#!/bin/bashtemp=$(env | grep USER | cut -d "=" -f ...原创 2020-04-23 18:38:34 · 272 阅读 · 0 评论 -
shell基础-四则运算练习
shell基础-四则运算练习原创 2020-05-20 13:25:32 · 453 阅读 · 0 评论