shell脚本

Shell脚本一键部署MongoDB

风流意气都作罢 提交于 2019-12-22 22:40:03
Shell脚本一键部署MongoDB 基本实施思路: 安装MongoDB→创建多实例(创建数量可根据需求自定义)→开启所有实例并展示端口 #!/bin/bash #自动安装MongoDB # #检查MongoDB是否已安装 local="/etc/yum.repos.d/MongoDB.repo" rpm -q mongodb-org &> /dev/null if [ $? -ne 0 ];then #配置本地YUM源 ls /etc/yum.repos.d/ | grep Mongo &> /dev/null if [ $? -ne 0 ];then touch $local echo "[mongodb-org]" >> $local echo "name=mongodb" >> $local echo "baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/3.6/x86_64/" >> $local echo "gpgcheck=1" >> $local echo "enabled=1" >> $local echo "gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" >> $local yum list yum

shell变量

懵懂的女人 提交于 2019-12-22 12:22:03
一.shell介绍 shell是一个命令解释器,它位于用户和内核之间,将用户输入的指令解释给内核执行;/bin/bash和/bin/sh是最常用的解释器 二.变量的命令规则 1.只能包含数字,字母,下划线 2.数字不能开头 3.区分大小写 三.变量的定义 第一种方式 变量名=变量值,注意等号等号=两边不能有空格,否则shell会将变量名当初命令执行而报"command not found"的错误 [root@localhost mysql]# name=xiaoming [root@localhost mysql]# echo $name xiaoming [root@localhost mysql]# name = hehe -bash: name: command not found 第二种方式 通过read交互让用户输入并付赋值给一个变量名 read命令的常用选项: -p "提示信息" 提示信息,可以用来提示用户需要输入什么信息 -s 隐藏用户的输入内容,比如输入密码时可以隐藏 -t n n秒后会自动回车,所以用户需要在n秒内输入完成 -n num 用户最多可以输入num个字符 第三种方式 变量名=$(命令)或变量名=`命令`,将命令的执行结果赋值给变量 四.变量的类型 局部变量:只在当前终端有效,就是直接在命令行上定义 环境变量:export 变量名=变量值

Shell - 判断语句

坚强是说给别人听的谎言 提交于 2019-12-22 05:38:18
流程控制 "if" 表达式 如果条件为真则执行then后面的部分: if ....; then .... elif ....; then .... else .... fi 大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…   通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。 [ -f "somefile" ] :判断是否是一个文件 [ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限 [ -n "$var" ] :判断$var变量是否有值 [ "$a" = "$b" ] :判断$a和$b是否相等 -r file     用户可读为真 -w file     用户可写为真 -x file     用户可执行为真 -f file     文件为正规文件为真 -d file     文件为目录为真 -c file     文件为字符特殊文件为真 -b file     文件为块特殊文件为真 -s file     文件大小非0时为真 -t file     当文件描述符(默认为1)指定的设备为终端时为真 ######################################################### 含条件选择的shell脚本

用shell脚本实现MongoDB数据库自动备份

試著忘記壹切 提交于 2019-12-22 03:22:26
一、创建MongoDB备份目录 用来存放数据 mkdir -p /data/mongodb_bak/mongodb_bak_now mkdir -p /data/mongodb_bak/mongodb_bak_list 二、创建MongoDB数据库备份脚本 #!/bin/bash # DUMP=/usr/local/mongodb/bin/mongodump #mongodump命令路 径 OUT_DIR=/data/mongodb_bak/mongodb_bak_now #临时备份目录 TAR_DIR=/data/mongodb_bak/mongodb_bak_list #备份存放路径 DATE=`date +%Y_%m_%d` #获取当前系统时间 DB_USER=myadmin #数据库账号 DB_PASS=****** #数据库密码 DAYS=20 #DAYS=20代表删除20天前的备份,即只保留近20天的备份 TAR_BAK="mongodb_bak_$DATE.tar.gz" #最终保存的数据库备份文件 cd $OUT_DIR rm -rf $OUT_DIR/* mkdir -p $OUT_DIR/$DATE $DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS --authenticationDatabase "admin"

02- Shell脚本学习--运算符

a 夏天 提交于 2019-12-21 09:57:51
Shell运算符 Bash 支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。 算术运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。 expr 是一款表达式计算工具,使用它能完成表达式的求值操作。 # 命令行直接计算 expr 2 + 2 #4 expr 3 - 2 #1 expr 3 / 2 #1 expr 3 \* 2 #6 # 使用表达式 a=10 b=20 val=`expr $a + $b` echo "a + b : $val" 注意: 表达式和运算符之间要有空格 ,例如 2+2 是不对的,必须写成 2 + 2 ,这与我们熟悉的大多数编程语言不一样。 乘号(*)前边必须加反斜杠()才能实现乘法运算 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。 算术运算符列表 运算符 说明 举例 + 加法 `expr $a + $b` 结果为 30。 - 减法 `expr $a - $b` 结果为 10。 * 乘法 `expr $a \* $b` 结果为 200。 / 除法 `expr $b / $a` 结果为 2。 % 取余 `expr $b % $a` 结果为 0。 = 赋值 a=$b 将把变量 b 的值赋给 a。 == 相等。用于比较两个数字

Shell—定时任务(crontab)

喜欢而已 提交于 2019-12-20 15:52:33
如何让shell脚本每天定时执行? 1.新建需要定时执行的shell脚本,这里为date.sh脚本。 #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH echo "hello world" echo "----------------------------------------------------------------------------" endDate=`date +"%Y-%m-%d %H:%M:%S"` echo "★[$endDate] Successful" echo "当前时间":$(date +"%Y-%m-%d %H:%M:%S") >> /www/wwwroot/date.txt echo "----------------------------------------------------------------------------" 2.将这个date.sh脚本添加到定时任务中,直接运行“crontab -e”命令添加就行。 [root@localhost ~]# crontab -e */1 * * * * /www/wwwroot/date.sh > /dev/null 2>&1 */1 *

Shell脚本入门-6

廉价感情. 提交于 2019-12-20 11:26:57
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> (一)Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr, expr 最常用 。 expr 是一款表达式计算工具,使用它能完成表达式的求值操作 。 例如,两个数相加( 注意使用的是 反引号 ` 而不是单引号 ' ): #!/bin/bash val=`expr 2 + 2` (注意: 2和'+'号 之间要有空格,不然结果为 2+2, 而不是4) echo "两数之和为 : $val" 执行脚本,输出结果如下所示: 两数之和为 : 4 两点注意: 表达式和运算符之间要有空格 ,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号 ,在 Esc 键下边。 (二)算术运算符 下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20: 运算符 说明 举例 + 加法 `expr $a + $b` 结果为 30。 - 减法 `expr $a - $b` 结果为 -10。 * 乘法 `expr $a \ * $b` 结果为 200。 / 除法 `expr $b /

shell编程

旧街凉风 提交于 2019-12-20 10:10:59
Shell 1. 新建一个脚本 新建一个 xxx.sh 文件 #!/bin/bash 脚本标识 1. 变量 1.1定义变量 myName=”小白” 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则: 首个字符必须为字母( a-z,A-Z)。 中间不能有空格,可以使用下划线( _)。 不能使用标点符号。 使用变量: $ 变量名 为了区分,我们可以使用 ${ 变量名 } readonly 定义一个只读的变量,不能重新赋值 1.2 删除变量 使用 unset 命令可以删除变量。语法: unset variable_name 变量被删除后不能再次使用。 unset 命令不能删除只读变量。 实例 #!/bin/bash myUrl="http://www.runoob.com" unset myUrl echo $myUrl 2. Shell 字符串 字符串是 shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。单双引号的区别跟PHP类似。 单引号 str='this is a string' 单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的; 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。 双引号 your

Shell编程——位置参数变量

丶灬走出姿态 提交于 2019-12-20 00:39:54
1、 (1)创建Shell脚本: (2)赋予执行权限: (3)执行Shell脚本: (4)对脚本赋值后执行脚本: $n:n为数字,$0代表命令本身,$1-9代表第一到第九个参数,十以上的参数用大括号包含,例如:${123}。 2、加法示例 (1)编写脚本: (2)赋予执行权限: (3)测试: 3、$*、$@、$#的用法: $#代表命令行中参数的个数。 4、$*与$@的区别: $*:这个变量代表命令行中的所有参数,把命令行中的参数看做一个整体。 $@:这个变量也代表命令行中的所有参数,只不过它把每个参数区分对待。 来源: https://www.cnblogs.com/zhai1997/p/12070717.html

Shell知识点回顾

风流意气都作罢 提交于 2019-12-20 00:10:10
shell基本的语法: 定义变量:key=value 注意:等号两边不能有空格,使用字母数字下划线命名,但是不能以数字开发头,系统变量建议全大写字母 撤销变量使用的是:unset命令 声明静态变量:readonly 变量 注意:不能unset 变量的值如果有空格,那么要加引号,默认是字符串,不能进行运算; export将变量提升为全局变量 特殊变量: $n : n是数字,$0表示该脚本的名称,$1~$9代表第一个到第九个参数,10以上的擦拭农户,需要用大括号包含,${10} $# : 获取所有输入参数的个数,常用用循环 $* : 代表命令行中所有的参数,$*把所有的参数看成是一个整体 $@ : 这个参数也是表示命令行中所有的参数,不过$@把每个参数区分对待 $? : 最后一次执行的命令的返回状态,如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0,证明上一个命令执行不正确 运算符 1、$((运算式)) 或者 $[运算式] 2、expr +、-、\*、/、% 注意运算符两侧要有空格 条件判断: [ condition ] 注意:condition前后要有空格,条件非空就是true 常用的判断条件: 1、两个整数之间的比较:= 字符串的比较 -lt 小于 -le 小于等于 -eq 等于 -gt 大于 -ge 大于等于 -ne 不等于 2、按照文件权限进行判断 -r