linux脚本

linux service start|stop|restart

谁都会走 提交于 2020-03-09 20:27:58
用了这么些日子的linux/unix系统,也和别人一起合作开发了不少程序,发现高手都喜欢在命令行上操作,而且控制程序的运行偏好于使用脚本,加上参数如:start、restart、stop等。 后来自己开发程序,也越来越觉得这样是个好的方法: 1)节省时间,一键操作一系列步骤,需要记住的操作只有一两个。 2)降低出错概率,一次成功,次次成功。 3)提高通用性,同一套启动脚本的代码,可以被用在不同的程序上,需要修改的仅仅是待执行的程序命令。这也在另一个方面说明在命令行上操作程序的好处(其实每个linux程序归根到底都得在命令行上执行)。 4)通过启动脚本,可以做更多的控制,比如一次只运行一个程序实例,把输出的信息重定向到日志文件中,查看状态,结束进程等。 5)可以和别的命令结合使用。 具体而言,linux的系统服务大多通过start|stop这类方式操作。在目录/etc/init.d中放着linux服务的启动脚本,在安装系统时,会把一些服务的启动脚本放在这个目录下。 同时,根据系统运行级别的不同,linux会运行/etc/rc$level.d/目录下的启动脚本。 http://www.360doc.com/content/12/0820/17/9336047_231349272.shtml http://blog.csdn.net/acs713/article/details

shell脚本之--数组操作

你说的曾经没有我的故事 提交于 2020-03-09 17:19:34
前言: 在Linux平台上工作,我们经常需要使用shell来编写一些有用、有意义的脚本程序。shell数组并不常用到,因为它仅支持弱类型的一维数组,但在某些情况下,它非常的有用。那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解,shell中的数组。 数组的定义 何为数组?学过计算机编程语言的同学都知道,数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念)。那么shell中数组是怎么定义的呢,我们来看两种数据类型:一是数值类型,二是字符串类型;虽然shell本身是弱类型的,但也可以这么区分。 数值类型的数组 :一对括号表示数组,数组中元素之间使用“空格”来隔开。 举个列子: arr_number = ( 1 2 3 4 5 ) ; 字符串类型数组 :同样,使用一对括号表示数组,其中数组中的元素使用双引号或者单引号包含,同样使用“空格”来隔开。 arr_string = ( "abc" "edf" "sss" ) ; 或者 arr_string = ( 'abc' 'edf' 'sss' ) ; 数组的操作   我们使用数值类型数组arr_number=(1 2 3 4 5)做为源数组进行相关的讲解:获取数组长度,读取某个下标的值,对某个下标赋值,删除、分配和替换以及遍历。提一个知识点,我们在shell里面想获取某个变量的值

大数据学习第4天

纵然是瞬间 提交于 2020-03-09 07:44:36
大数据学习第四天 pstree 查看当前进程结构 source 加载文件 在当前bash . 在当前bash运行脚本 bash 相当于浏览器加cmd chomd +x 把文件变为可执行文件 #! /路径 在文件首行指定运行编译/解释器 不写时默认bash #! 注释的行会在第一次读取时直接运行 yum serch 查询yum情况 文件输出类型 0 标准输入 1 标准输出 2 错误输出 可以用于多种结果的不同输出 正常结果 1>/路径 错误结果 2>/路径 配置service服务文件 /etc/init.d/ chkconfig nn 运行模式 1-6 nn 运行优先级 nn 关机级别 vi 模式下 末行 set ts设置缩进距离 在脚本中'命令行' 变量名='cat 文件名'赋值 获取文件内容赋值变量 bash -x debug运行 ps -aux 查看所有进程 chkconfig 所有服务的配置情况 --list 查看所有服务的配置启用情况 $(变量名)字符串 变量字符串拼接 子bash执行指令时直接继承父bash环境(变量 运行环境...) 子bash执行文件时不会继承父bash的值 & 后台运行 | 管道创建子进程时会全部继承父bash的值 ' ' 强引用 完全引用 "" 弱引用 while 后面必须跟一个命令 比如test du -h 查看文件夹下文件大小 $IFS

记一次Shell脚本练习_批量主机root密码修改

北城以北 提交于 2020-03-08 23:03:00
操作环境:CentOS 7 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) [root@localhost ~]# 条件: 1、可以ssh免密登陆 2、把需要修改root密码的主机ip地址,写进当前目录下的ip.txt #!/usr/bin/bash #create by liujun at 2020-03-08 #enter the change password while : do read -s -p "Enter a New Password:" pass1 echo "" read -s -p "Enter Your Password Agine:" pass2 if [ ! $pass1 == $pass2 ];then echo "" echo "The New password do not match,please re-enter" else break fi done echo "" echo "Entered successfully!" #make sure the host is powered on and change password for ip in $(cat ip.txt) do { ping -c1 -W1 $ip &>

Linux 定时运行脚本、命令

喜你入骨 提交于 2020-03-07 13:37:02
今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置。Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows略微复杂一些(因为没有图形界面嘛),但是也不是很复杂,基本上用过一遍就能记住了,关键是要记住/var/spool/cron这个目录。下面看一下具体的使用方法: 首先 查看一下/etc/crontab文件: $ cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly 前四行是有关设置cron任务运行的环境变量。SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。Cron的输出以电子邮件的形式发给M A ILTO变量定义的用户名。如果MAILTO变量定义为空字符串(MAILTO="

[Linux] expect用法举例

冷暖自知 提交于 2020-03-07 05:07:30
expect有助于自动化脚本中的交互过程的自动输入,例如远程登录需要输入确认信息、密码,安装脚本需要输入确认信息、用户名、密码、选择配置选项等等。 expect内部命令中的expect可以匹配一个给定的字符串,匹配上了可以再使用send命令返回一个字符串。 [例1] 使用"-c"选项,从命令行执行expect脚本 [root@xxx test]# expect -c 'expect "\n" {send "pressed enter\n"}' pressed enter [root@xxx test]# [root@xxx test]# expect -c 'expect "hi" {send "You said hi\n"}' hi You said hi [root@xxx test]# expect -c 'expect "hi" {send "You said hi\n"}' high You said hi [root@xxx test]# 再看一个ssh登录的例子, [例2-1] ssh登录主机,test.exp内容如下(主机名和密码写在脚本中,执行完成后退出) #!/usr/bin/expect set ipaddr "localhost" set passwd "iampasswd" spawn ssh root@$ipaddr expect { "yes/no"

20_03_06_04 Hello World 程序

我的未来我决定 提交于 2020-03-06 15:33:50
0. 在linux下创建一个文件叫 hello.py 并输入 print("Hello World!") 1. 执行命令:python hello.py 输出 localhost:~ jieli$ vim hello.py localhost:~ jieli$ python hello.py 2. 指定解释器 上一步中执行 python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行 如果想要类似于执行shell脚本一样执行python脚本 例: ./hello.py ,那么就需要在 hello.py 文件的头部指定解释器,如下: #! /usr/bin/env python print "hello, world" 如此一来,执行:./hello.py 即可 注:执行前需给予 hello.py 执行权限,chmod 755 hello.py 3. 在交互器中执行 来源: https://www.cnblogs.com/azxsdcv/p/12426291.html

sh脚本编写

让人想犯罪 __ 提交于 2020-03-05 21:50:31
参考:https://www.runoob.com/linux/linux-shell.html(菜鸟) #!/bin/bash : << EOF 以下是测试的sh语法,注意=两边不能有空格 EOF #echo "nihao \c"后面的\c是不换行的意思 myName = "wt123" #注意下面变量的写法 #readonly myName #unset myName echo "hello my name is: $myName " #获取字符串长度 echo ${#myName} #截取字符串,从0开始 echo ${myName:1:4} #数组 arr = ( 'dog' 'cat' 'monkey' ) echo ${arr[0]} echo "############################" #外部传递参数,执行test.sh 11 22 33 echo "第一个参数: $1 " echo "参数个数: $# " echo "所有参数(整个): $* " echo "所有参数(多个): $@ " for i in " $@ " ; do echo $i done if [ $1 == $2 ] then echo "第一位等于第二位" else echo "第一位不等于第二位" fi echo "############################"

[原创]使用benchmarksql和pgbench对PostgreSQL Plus Advanced Server进行性能测试

梦想与她 提交于 2020-03-05 11:22:53
/*--> */ /*--> */ 一、测试环境 benchmarksql version:4.0.8 rhel 6.3 vmware esxi 二、理解 benchmarksql 性能测试原理 TPC-C 1 、理解 TPC-C TPC-C 模拟一个批发商的货物管理环境。该批发公司有 N 个仓库,每个仓库供应 10 个地区,其中每个地区为 3000 名顾客服务。在每个仓库中有 10 个终端,每一个终端用于一个地区。在运行时, 10×N 个终端操作员向公司的数据库发出 5 类请求。由于一个仓库中不可能存储公司所有的货物,有一些请求必须发往其它仓库,因此,数据库在逻辑上是分布的。 N 是一个可变参数,测试者可以随意改变 N ,以获得最佳测试效果。 TPC-C 使用三种性能和价格度量,其中性能由 TPC-C 吞吐率衡量,单位是 tpmC 。 tpm 是 transactions per minute 的简称; C 指 TPC 中的 C 基准程序。它的定义是每分钟内系统处理的新订单个数。要注意的是,在处理新订单的同时,系统还要按表 1 的要求处理其它 4 类事务 请求。从表 1 可以看出,新订单请求不可能超出全部事务请求的 45 %,因此,当一个系统的性能为 1000tpmC 时,它每分钟实际处理的请求数是 2000 多个。价格是指系统的总价格,单位是美元,而价格性能比则定义为总价格 ÷

kafka linux 启动脚本 sample

你说的曾经没有我的故事 提交于 2020-03-05 11:01:28
#!/bin/sh # # chkconfig: 345 99 01 # description: Kafka # # File : Kafka # # Description: Starts and stops the Kafka server # source /etc/rc.d/init.d/functions KAFKA_HOME=/opt/kafka KAFKA_USER=kafka # See how we were called. case "$1" in start) echo -n "Starting Kafka:" /sbin/runuser $KAFKA_USER -c "nohup $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties > /var/log/kafka/server.out 2> /var/log/kafka/server.err &" echo " done." exit 0 ;; stop) echo -n "Stopping Kafka: " /sbin/runuser $KAFKA_USER -c "ps -ef | grep kafka.Kafka | grep -v grep | awk '{print \$2}' | xargs