linux脚本

shell脚本练习

江枫思渺然 提交于 2019-11-27 13:35:29
1、 通过位置变量创建linux系统账户及密码 $1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数 1#!/bin/bash 2 # Author: wangshilin 3 # Blog: https://home.cnblogs.com/wangshilin/ 4 useradd "$!" 5 echo "$2 | passwd --stdin $2 " 2、 每周5使用tar命令备份/var/log 下的所有日志文件,防止文件覆盖 1 #!/bin/bash 2 # Author: wangshilin 3 # Blog: https://home.cnblogs.com/wangshilin/ 4 # Time: 2019-08-17 01:31:13 5 tar -czf log -`date +%Y%m%d` .tar.gz /var/log 6 00 03 * * 5 /root /logbak.sh 3、 实时监控本机内存和硬盘剩余空间,剩余内存小于500M,根分区剩余空间小于1000M的时候发送报警邮件 #!/bin/bash #3 disk =$(df -h / | awk '/\//{print $4}') mem=$(df -h / | awk '/\//{print $4}') if [ $disk -le 512000 -a $mem -le

Shell脚本中的shebang到底是什么

帅比萌擦擦* 提交于 2019-11-27 12:59:37
使用类Unix系统的同学可能都对“#!”这个符号并不陌生,但是你真的了解它吗? 这个符号的名称,叫做”Shebang”或者”Sha-bang”。长期以来,Shebang都没有正式的中文名称。Linux中国翻译组的GOLinux将其翻译为“释伴”,即“解释伴随行”的简称,同时又是Shebang的音译。本文将简单介绍一下Shebang这个符号。 用法 Shebang通常出现在类Unix系统的脚本中第一行,作为前两个字符。在Shebang之后,可以有一个或数个空白字符,后接解释器的绝对路径,用于指明执行这个脚本文件的解释器。在直接调用脚本时,系统的程序载入器会分析 Shebang 后的内容,将这些内容作为解释器指令,并调用该指令,将载有 Shebang 的文件路径作为该解释器的参数,执行脚本,从而使得脚本文件的调用方式与普通的可执行文件类似。例如,以指令#!/bin/sh开头的文件,在执行时会实际调用 /bin/sh 程序(通常是 Bourne shell 或兼容的 shell,例如 bash、dash 等)来执行。   由于 # 符号在许多脚本语言中都是注释标识符,Shebang 的内容会被这些脚本解释器自动忽略。 在 # 字符不是注释标识符的语言中,例如 Scheme,解释器也可能忽略以 #! 开头的首行内容,以提供与 Shebang 的兼容性。  

shell脚本之 awk 工具的使用

此生再无相见时 提交于 2019-11-27 12:50:50
在Linux系统中,awk是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被我们运维人员广泛应用于shell脚本,完成各中自动化配置任务。 awk可以直接处理目标文件,也可以和sed命令一样通过“ -f ”选项读取脚本对目标文件进行处理。 awk的语法格式如下: sed命令常用于整行处理,而awk比较倾向于将一行分成多个字段,awk可以使用逻辑操作符“&&”,表示“与”,“||”表示“或”,“ !”表示“非”;还可以进行简单的数学运算,如+、-、*、/、%、^、分别表示加、减、乘、除、取余、和乘方。 awk包含几个特殊的内建变量(可直接用),如下所示: 用法示例: 1)按行输出文本: 2)按字段输出文本: 3)通过管道、双引号调用shell命令: 来源: https://blog.csdn.net/weixin_45116475/article/details/99676666

shell脚本之正则表达式

帅比萌擦擦* 提交于 2019-11-27 12:50:13
一、基础正则表达式实例: 元字符: 在Linux系统中常见的文件处理工具中grep和sed支持基础正则表达式。 grep命令选项: -i:查找时不区分大小写; -v:查找时反向输出,如查找不包含某些字符的内容; -n:表示查找出结果后显示行号; 这三个选项可以结合使用,如“-in”,查找时不区分大小写并显示行号。 示例: [root@localhost ~]# grep -n 'the' test.txt #查找test文件中包含字符“the”的行 #可以将选项改为“-vn”来查找不包含“the”的行。 [root@localhost ~]# grep -n "sh[io]rt" test.txt #[io]表示匹配 i 或o的显示出来 #[ ]中无论有几个字符都仅代表匹配一个字符即可。 [root@localhost ~]# grep -n 'oo' test.txt #查找包含字符“oo”的行。 [root@localhost ~]# grep -n 'ooo*' test.txt #查找包含至少两个o以上的字符串。 [root@localhost ~]# grep -n 'o\{2\}' test.txt #查找包含两个“o”的字符串。 [root@localhost ~]# grep -n 'o\{2,5\}' test.txt #查找包含2~5个o的字符串。 [root

(转)mac上的命令行工具

独自空忆成欢 提交于 2019-11-27 12:19:21
转自 https://www.cnblogs.com/hxvicky/p/4554129.html,原文:《 Eight Terminal Utilities Every OS X Command Line User Should Know 》 OS X 的Terminal 终端开辟了强大的UNIX实用工具和脚本的世界。如果你是从Linux转移过来的用户,你会在OS X 终端上发现很多熟悉的命令。但是即使是高级用户也经常会忽略掉其实OS X终端也会有一系列在其他的操作系统中没有的终端工具。当你学习了以下这些只适用于Mac的课程会让你更高效的使用Mac命令行同时消除UNIX系统和你的Mac系统之间的差别。 1. open open:打开文件,目录和程序。这是令人兴奋的,对吗?其实它真正的作用是用于 命令行模拟鼠标双击操作 。假如当你输入: $ open /Applications/Safari.app/ 输入该命令时会像你在Finder中双击Safari图标一样启动Safari浏览器。 如果你用open命令指向一个文件,它会启动相关的GUI应用程序加载该文件。open screenshot.png命令会在预览中打开该图片。当然你可以在命令中加入 -a 标识来选择你想要用来加载该文件的应用程序,或者使用 -e 标识直接在文本编辑器中打开编辑。

MySQL高可用架构之MHA

 ̄綄美尐妖づ 提交于 2019-11-27 11:30:17
简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点) 。MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。 在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。使用MySQL 5.5的半同步复制

shell编程基础(二)

自闭症网瘾萝莉.ら 提交于 2019-11-27 11:13:29
Shell是命令解释器,是Unix/Linux系统中用户和内核交互的接口。Shell脚本是shell程序设计语言编写的程序。 一、交互式或登录(注册)shell 交互式注册(交互式登录)shell:输入用户名(/etc/passwd)、密码(/etc/shadow)成功登录系统,即调用交互式注册shell。 会运行初始化文件,设置用户运行环境。 交互式非注册shell:在提示符下,输入任意shell,如ksh等,将进入交互式非注册shell。 会运行对应shell初始化文件,也会继承注册shell的环境。 非交互式shell:主要是运行shell脚本。 不执行初始化文件,但会继承注册shell环境。 交互式模式就是在终端上执行,shell等待你的输入,并且立即执行你提交的命令。 这种模式被称作交互式是因为shell与用户进行交互。 这种模式也是大多数用户非常熟悉的:登录、执行一些命令、退出。 当你退出后,shell也终止了 非交互式模式以shell script(非交互)方式执行。 在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。 当它读到文件的结尾EOF,shell也就终止了 二、shell和shell脚本 Shell是命令解释器,是Unix/Linux系统中用户和内核交互的接口。 Shell脚本是shell程序设计语言编写的程序

第三季-第27课-Shell脚本高级编程

一曲冷凌霜 提交于 2019-11-27 10:45:04
第27课-Shell脚本高级编程 28.1 什么是脚本 脚本是一个包含一系列 命令序列 的 文本文件 (可以通过编辑器进行编辑,而且可以执行)。当运行这个脚本文件时,文件中包含的命令序列将得到自动执行。例如我们创建7个文件,可以不断的创建7个文件,也可以通过一个脚本文件(.sh文件)来创建。 28.2 脚本编程技术 1. 基本结构 (1)解析器:#!后面的部分,表示该脚本用哪个解析器来操作; (2)命令序列:由众多的命令组成。 2. 变量 shell脚本允许用户设置和使用自己的变量,变量可以使数字或者字符串,用户无需指定其类型,也无需在使用前定义。 赋值号的左右两边不用空格 ,注释用#开头。 #!/bin/sh a=”hello world” b=5 echo “A is: $a” echo “B is %b” 注:在运行该程序之前我们会发现有错,是因为我们使用的是windows下的文件和linux下的文件不同。所以,我们通过dos2unix shell.sh进行转换。我们在转换之前要安装相应的rpm包。 3. 参数 同C程序一样,shell脚本中可以使用命令行参数 $#:传入脚本的命令行参数个数 $*:所有命令行参数值,在各个参数值之间留有空格 $0:命令本身(shell本身) $1:第一个命令行参数 $2:第二个命令行参数 例如: #2.3 echo "number of

shell脚本-grep和正则表达式

孤街醉人 提交于 2019-11-27 08:30:44
1、grep程序: 1)命令:grep egrep fgrep,用来进行 行模式(pattern手动写)匹配的 egrep = grep -E //使用正则表达式进行匹配 fgrep = fast grep //只使用文件通配符进行匹配 *grep默认使用正则表达式进行文本匹配 2)用法: grep[option]...PATTERN[filename] 3)常见选项(option): -E 支持使用扩展的正则表达式(regexp) -P 使用Perl语言的正则表达式引擎进行搜索(每种语言的正则表达式引擎都不相同,甚至grep、sed、awk使用的regexp的引擎也不相同) -c 统计计数 *-i 忽略大小写 *-v 进行反选 *-o 仅仅输出匹配的内容(默认输出是匹配到的行) --color=auto 语法zhuose -n 显示行号 -w 匹配固定单词 2、PATTERN -- 正则表达式 作用:通过一些特殊字符,来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身含义,需要使用\来进行转义 文件通配符: *:任意长度任意字符 ?:任意一个字符 正则表达式: 1)字符匹配 .任意一个字符 | 或 [] 范围内任意一个字符 [^] 范围外任意一个字符 字符类:[:digit:][:alnum:][:alpha][:space:][:punct:] 2)次数匹配 \

shell脚本day04-grep与正则表达式

佐手、 提交于 2019-11-27 08:22:13
一、grep程序   LINUX下有文本处理三剑客 -- grep sed awk   grep: 文本 行过滤工具   sed: 文本 行编辑器(流编辑器)   awk: 报告生成器,做文本输出格式化   1.grep包含三个命令:grep egrep fgrep用来进行行模式(pattern)匹配     egrep = grep -E //使用扩展的正则表达式进行匹配     fgrep = fast grep //只使用文件通配符进行匹配     *grep默认使用正则表达式进行文本匹配*   2.grep的用法     -E 支持使用扩展的正则表达式(ERE)(regexp)       -p 支持使用perl语言的正则表达式引擎进行搜索(每一种语言的正则表达式引擎都不相同,甚至sed grep awk使用的regxp引擎也不用)     -i 忽略大小写     -v 进行反选     -o 仅仅输出匹配的内容(默认输出 是匹配到的行)     --color=auto 语法着色     -n 显示行号 二、正则表达式--PATTERN    作用:通过一些特殊字符来表示一类字符内容,然后交给前面的命令来执行;如果使用特殊字符本身的含义,就需要\转义\   1.字符匹配     [] 范围内任意一个字符     [^] 范围外任意一个字符     字符类:[:digit