shell脚本

CentOS7通过shell脚本自动部署oracle12c

笑着哭i 提交于 2020-01-22 01:22:46
由于经常需要部署oracle12c环境,我就将部署过程编写成shell脚本来,提高安装部署的效率,自动安装部署的脚本分为两部分,第一部分oracle_software.sh的作用是安装oracle软件环境;第二部分是listener_dbca.sh,作用是安装监听、配置oracle系统启停服务、配置数据库实例,临时表空间,数据表空间及授权。完成这两个脚本之后,最后的操作就是将待导入的dmp备份文件上传到服务器,操作expdp还原即可。 脚本的内容具体如下: oracle数据库自动安装部署脚本: [root@~]# cat oracle_software.sh #!/bin/bash #################### Steup 1 Install oracle software #################### #script_name: oracle_software.sh #Author: Danrtsey #mail:mydefiniteaim@126.com #auto_install_oracle12c version=12.1.0.2 # attentions: # 1.上传12c软件安装包至/opt/路径下(本脚本支持上传至任意路径,根据脚本执行执行) ######################################## # #

shell编程之变量赋值

*爱你&永不变心* 提交于 2020-01-22 00:52:24
1.变量赋值: name=lbg 等号前后不能有空格 name="Lebron James" 变量值中有空格要用双引号 echo ${name} 用${}更保险 shopt -s -o nounset 设置“先声明再使用” 2.取消变量: unset 释放变量和函数的内存 3.位置参数: ${n}:输入的第n个参数($0表示脚本名字) $#:输入参数的数量 $@:输入的所有参数 $!:输入的最后一个参数 $?:上一个命令的返回值(用于在脚本中判断之前命令的执行状态,任何非0的返回都表示非正常执行) 4.数组: declare -a Array=('ladawn' 'lbg' 'lbj') 5.只读变量: declare -r N=10 readonly N=10 6.函数中的变量: 若不声明local,则函数中的变量也为全局变量。 若声明为local(local var=200),则变量的作用域只在函数内。 7.引用: 双引号:弱引用,特殊符号($、\、`)仍然解析为特殊的意义。 单引号:强引用,所有的字符都是字面意思,不再有特殊意义。 8.命令替换: A=$(data)或者A=`data`,表示将data命令的输出结果取出,赋给A 9.bc运算: 用于浮点数计算输出。通过管道使用。 tatal=$(echo "34/15" | bc) 9.数值运算: let "sum+=1"

Linux shell 特殊变量解析

二次信任 提交于 2020-01-22 00:29:07
文章目录 一、$0 二、\$1~n 三、$# 四、$* 五、$@ 六、$$ 七、$! 八、$? 九、$- 十、举个例子 Shell 变量的命名规范和大部分编程语言都一样: 变量名由数字、字母、下划线组成; 必须以字母或者下划线开头; 不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。 但是 shell 有一些特殊变量,并不遵守上面的命名规范。 一、$0 指当前 shell 脚本的文件名。 二、$1~n 传递给 shell 脚本 或者 shell 函数 的参数。 n 是一个数字,表示第几个参数。 例如: $1 是第1个参数 $2是第2个参数 … 以此类推。 三、$# 传递给 shell 脚本 或者 shell 函数的位置参数的个数。 四、$* 传递给 shelll 脚本 或者 shell 函数的所有参数列表。 这里所有的位置参数都会被看成一个字符串。 五、$@ 传递给 shelll 脚本 或者 shell 函数的所有参数列表。 这里每个位置参数会被看做一个独立的字符串。 六、$$ 当前 shell 进程的 ID,即 PID(ProcessID) 七、$! shell 最后运行的后台进程的 PID 。 八、$? 最后运行的命令的结束代码(返回值) ,表示上一次命令是否执行成功: 0 : 表示执行成功, 非0 : 表示执行失败 九、$- echo $ -

web 防攻击shell脚本

倾然丶 夕夏残阳落幕 提交于 2020-01-21 20:29:10
统计nginx日志,当单个ip在10秒钟内访问 /account/sendPhoneCode次数超过5次,就禁用这个ip,正常用户不可能有么大的访问量 #!/bin/bash #write: lijing QQ 858080796 #date: 20160528 v2.0 #description:拦截非法IP #定义变量 RETVAL=0 Date=$(date '+%Y-%m-%d') Time=$(date '+%Y:%H:%M' -d '-1 minute') MON=$(date|awk -F" " '{print $2}') TODAY=$(date|awk -F" " '{print $3}') Log="/data/logs/nginx/access.log " LINE="70000" #关键字 Key01="sendPhoneCode" Status=/tmp/statuS_deny_ip /sbin/service iptables status > $Status #定义函数 #禁止时间函数 secure_deny_time(){ Time01=$(date "+%H:%M:%S" -d " -10 second") Time02=$(date "+%H:%M:%S" -d " -9 second") Time03=$(date "+%H:%M:%S" -d

shell学习——(二)

帅比萌擦擦* 提交于 2020-01-21 19:37:46
接着上一章,shell的基本概念介绍完后,具体介绍一些实用和常用的shell内建命令。 一、echo echo将参数打印到标准输出,参数之间以一个空格隔开,并以换行符结尾。 例如,$ echo "Enter your name: "这里引号可以不用 二、printf printf可以输出简单的字符串,例如 printf “Hello, world\n” 不同于echo,它不会自动提供一个换行符号。你必须显示地将换行符号指定成\n。 printf format-string [ arguments .. . ] 第一部分是一个字符串,用来描述输出的排列方式,最好为此字符串加上引号。此字符串包含了按字面显示的字符以及格式声明,后者是特殊的占位符,用来描述如何显示相应的参数。 例如 $ printf “The first program always prints ‘%S, %S!’\n” Hello world 三、 基本的I/O重定向 标准输入/输出:程序应该有数据的来源端,数据的目的端以及报告问题的地方,它们分别为标准输入、标准输出和标准错误输出。 默认的标准输入、标准输出以及标准错误输出都是终端。 例如$ cat now is the time #用户键入 now is the time # 由cat返回 重定向与管道 shell使用数种于发表基,改变默认的来源端与目的端。 以

shell脚本实例-for实现批量主机的探测

孤者浪人 提交于 2020-01-21 18:57:17
#!/usr/bin/bash >ip.txt for i in {2..254} do { ip=192.168.234.$i ping -c1 -W1 $ip &>/dev/null if [ $? -eq 0 ];then echo "$ip" | tee -a ip.txt fi }& #这个是后台执行这个程序 done wait #这个是等待后台程序运行结束才执行成功 echo "finish...." 作者简介: 陈志珂(头条号: 强扭的瓜不好吃 )目前就职于中国最大的安卓应用软件公司,任高级工程师 , 现在公司任php开发工程师,python开发工程师,高级运维工程师,公众号“铅笔学园”运维内容合作作者之一。 铅笔学园 :IT资源分享|知识分享,做初级程序员的指明灯 来源: https://www.cnblogs.com/qianbixueyuan/p/9452575.html

shell#正则表达式&sed

好久不见. 提交于 2020-01-21 18:47:00
--字符串 字符串的初值(备用值),变量非空是不可使用 ${变量名:-xxxxx} ------------------------------------------------------------------------------------------------- 一丶正则表达式 正则表达式 可以配合某工具对文档进行过滤筛选 head -5 > user grep '^root' user //以root开头的行 grep 'bash$' user //以bash结尾的行 grep '[0-9]' user //筛选出0-9的数字 grep '[^0-9]' user //排除所有0-9的数字 grep 'roo.' user //筛选roo开头的匹配单个字符 grep 'ro*t' user //筛选出现任意次o的字符,可以是0次---rt rot rooooot 像 小部件 grep "0:0:\{2\}" user //筛选0:出现两次的字符串 扩展正则表达式 二丶sed 流式编辑器 图像 小部件可以对文本文件进行非交互式增删改查,逐行处理 sed使用方式 1.前置命令|sed 选项 (定址符)指令o 2.sed 选项(定址符)指令 被处理文件 选项 -n 屏蔽默认输出 -r 支持扩展正则 -i 写入文件 指令 p 输出 d 删除 s 替换 [root@svr5

【烂笔头】adb命令篇

跟風遠走 提交于 2020-01-21 15:35:58
前言 Android的adb提供了很多命令,功能很强大,可以为开发和调试带来很大的便利。当然本文并不是介绍各种命令的文章,而是用于记录在平时工作中需要经常使用的命令,方便平时工作时使用,所以以后会持续新增一些常用而且很有用的命令。也希望这些命令能给读者带来一定的帮助。 当前已经记录的命令主要涉及到如下功能: 一、常用的与Permission相关的adb命令 二、通过Wifi连接连接手机 三、adb操作四大组件 四、实现一个操作多条adb命令的脚本 五、用adb dump一些信息 六、adb与进程 一、 常用的与Permission相关的adb命令 Android工具adb提供了一些命令,可以方便查看、授权、取消应用的权限,可以为调试程序带来不少的方便,下面简单介绍几个常见的命令。 1、查看指定app中权限申请情况 命令:adb shell dumpsys package [包名] 用途:该命令用于获取该app的package信息,Permission信息只是其中的一部分。 命令使用示例: 1 adb shell dumpsys package cn.aaa.bbb 如下下截图为该命令中关于权限的部分信息: 该图显示了4部分权限: (1)declared permissions。该应用自己声明(即自定义)的权限,这里显示了权限名,权限等级,以及在什么时候获取该权限(INSTALLED

Linux Shell命令总结

扶醉桌前 提交于 2020-01-21 14:57:33
一、变量 二、引用&命令替换 三、退出状态&逻辑判断 四、表达式 一、变量 本地变量 当前shell拥有 举个例子 $LANG = xxx 再次登录就没了,其他ssh连接也不能共享 生命周期随shell 局部变量 只能local用于函数 本地局部变量演示: 位置 $1,$2,${11} 脚本中使用 函数中使用 传给前面的命令加‘ ’ 如 awk命令。不加单引号传给bash 位置变量演示: 位置变量示例1: (脚本中用两个位置 1、2来接受外部的两个参数) 位置变量示例2: (大括号“{}”括起来) 位置变量示例3: (函数中使用) 位置遍历示例4: (传给bash不加 ‘ ’ ,传给前面的命令加‘ ’) 特殊 $#:位置参数个数 $*:参数列表,双引号引用为一个字符串 $@:参数列表,双引号引用为单独的字符串 $$:当前shell的PID:接收者 $BASHPID:真实 管道 管道也是一个比较特殊的东西。使用管道左右两边会分别开启一个子bash $?:上一个命令退出状态 0:成功 other 非0:失败 环境 export 环境变量中使用,原理就是将变量导出共享到任何 子bash 中执行。 导入的父bash变量并非实时共享的 二、引用&命令替换 引用: 双引号:弱引用,参数扩展 单引号:强引用,不可嵌套 单双引号的区别: 花括号扩展不能被引用 命令执行前删除引用 命令替换: 反引号

Linux配置定时crontab及环境变量

非 Y 不嫁゛ 提交于 2020-01-21 12:00:44
一、linux配置定时crontab 1、执行方法   a、crontab –e : 修改 crontab 文件,如果文件不存在会自动创建。   b、10 0 . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh   c、crontab -l:显示 crontab 文件,查看定时配置。 2、定时含义(参考附件crontab格式说明) 五个参数依次代表的含义分、时、日、月、星期。 3、秒级定时任务执行采取sleep方式,执行的时间间隔要能被60整除,如下例子。也可以把sleep命令写进程序中然后引入程序。 例如: 程序每10s执行一次 . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh sleep 10; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh sleep 20; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh sleep 30; . ./.bash_profile;sh /home/zjtxjb_scp1/etc/shell/x.sh sleep 40; . ./.bash_profile;sh /home/zjtxjb_scp1/etc