linux shell并发执行命令】的更多相关文章

一般我们在linux上十一shell命令的批量执行操作,一般使用for或者while 循环进行操作,但是这样有一个问题,for或者while本质上是串行的,并不能,如果某一个命令执行耗费的时间比较长,就会等待很长的时间,很浪费时间; 将被执行的命令运行为后台执行,可以实现并发执行多条命令; for ((i=0;i<10;i++));do echo "done ";done & wait 但是上述方法,如果在i的值很大的时候,会产生大量的进行,造成系统严重的问题,所以,需要…
经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 如果不会的请参加我的另外一篇文章 http://blog.csdn.net/chenpy/article/details/30281515 两个错误: Pseudo-terminal will not be allocated because stdin is not a terminal.使用ssh -t -t 可以解决 另外一个问题Agent admitted…
需求:经常需要在一台服务器远程到其他节点的服务器上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了.介绍两种shell命令远程执行的方法. 方式一: ssh user@remoteNode "cd /home ; ls" 然后输入密码就会出现结果 方式二:有很多命令行的时候,单一命令无法完成,考虑脚本方式实现: #!/bin/bash >& << eeooff cd /home touch abcdefg.txt…
1.问题描述 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,下边介绍shell命令远程执行的方法. 前提: 远程电脑之间已经配置ssh免密码登陆 2.脚本方式 有些远程执行的命令内容较多,单一命令无法完成,考虑脚本方式实现: #!/bin/bash SERVERS="hadoop0 hadoop1 hadoop2" delete_file(){ > /dev/>& << eeooff cd /usr/local…
shell 后台执行命令方法: 1. nohup cmd &          后台会生成 nohup.out 文件 2.cmd >/路径/xx.log &   后台生成 xx.log 文件 3.后台任务切换至前台   fg % jobID 4.终止后台命令  kill 程序ID号…
文章来自于我的个人博客:(linux shell)第二章--命令之乐(一)    上一章我们描写叙述了一些linux shell中须要注意的一些语法.接下来我们開始了解linux shell的经常使用命令.let's go... cat 命令: cat本身表示拼接(concatenate).cat命令有一些经常使用參数,像-n,-s等,我们以下逐一介绍: 假设你想高速查看一个文本文件内容.就能够使用cat命令: cat file 假设你想一次查看多个文件内容.也是在后面加上文件路径就可以 cat…
在shell下执行命令的方法 1. #!/bin/sh 语法:在shell.sh的开头写入 #!/bin/sh 一般的shell脚本就是这种用法.这种方法调用脚本开头的shell执行命令,子shell执行的时候, 父shell暂停运行,等待子shell运行完后返回父shell.子shell从父shell继承环境变量.但是子shell中的环境变量不会带回父 shell 2. exec 语法: exec 命令 exec与fork不同,不需要新开一个sub-shell来执行被调用的脚本. 被调用的脚本…
在Linux shell 脚本中可能会用到一些命令行参数,常见如下: $0:脚本名称 $#:执行脚本时传入的参数个数,不包括脚本名称 $@:所有参数 $*:所有参数 $1...$9:第1个参数......第9个参数 $?:不属于位置变量,只是形式上比较相似:表示命令执行的退出状态(正常退出为0) 1.示例 #!/bin/bash echo echo "There are $# parameters" echo '"$*":' for var in "$*&…
转载: linux shell + expect:批量scp脚本工具             2011-09-13 15:51:06 分类: Python/Ruby 最近在准备一个部署的任务,其中有一项必须的过程就是将一些文件,如安装包发送到大量的服务器上去.虽然已有宇哥的脚本可用:通过paramiko模块提供的ssh和scp功能编写的python脚本.但我到现在还在对python的恐惧之中(虽然已经在空闲时间努力去学习了),所以我使用了shell和expect脚本结合的方式,写了这个批量scp…
详细方法: SSHClient中的方法 参数和参数说明 connect(实现ssh连接和校验) hostname:目标主机地址 port:主机端口 username:校验的用户名 password:登录密码 pkey:私钥方式身份验证 key_filename:用于私钥身份验证的文件名 timeout:连接超时设置 allow_agent:这是布尔型,设置False的时候禁止使用ssh代理 look_for_keys:也是布尔型,禁止在.ssh下面找私钥文件 compress:设置压缩 exec…
转载请注明出处,欢迎提出宝贵意见,谢谢! 功能介绍: 1.主机分组 登录后显示分组主机及主机数量 选择主机组后显示该主机组下所有主机信息,主机名及IP显示输入选择:1.执行命令利用线程并发组内所有主机同时执行命令,并将结果,返回格式为:----------------------host1------------------ ----------------------host2------------------ ----------------------host3-------------…
#!/bin/bash # ref: https://blog.csdn.net/spch2008/article/details/51433353 token(){ pid=$ # 判断是否有传入pid if [ -z "${pid}" ] then echo "please input pid" exit fi # 设置并发数,默认为5 concurrency= if [ -n "$2" ] then concurrency=$ echo &…
expect命令实现脚本免交互 一.Linux下SSH无密码认证远程执行命令 在客户端使用ssh-keygen生成密钥对,然后把公钥复制到服务端(authorized_keys). 实现步骤: 1.客户端机器创建密钥对 # ssh-keygen -t rsa #一直回车 2.登录需要执行命令的ssh服务器,创建.ssh目录,设置好目录权限 mkdir /root/.ssh chmod 700 /root/.ssh 3.公钥上传到服务器,重命名为authorized.keys scp /root/…
1,echo "test" > test.txt    输出重定向到text.txt,文件不存在就创建 echo "test" >> test.txt    追加输出重定向到text.txt,文件不存在就创建 2, $# 是启动脚本时携带的参数个数 -ne 是不等于 这个语句的意思是“如果shell的启动参数不等于1个”$# 表示提供到shell脚本或者函数的参数总数: $1 表示第一个参数. -ne 表示 不等于 另外: 整数比较 -eq 等于,…
Linux下远程连接windows,执行命令 - Feng______的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/feng______/article/details/31535693 Python实现linux/windows通用批量‘命令/上传/下载’小工具 - 奋进的K - 51CTO技术博客http://kaifly.blog.51cto.com/3209616/1832200 python telnet远程登录端口交互执行命令 - 玩蛇网http…
./ ping.sh 这个意思 ,'./'的意思是在当前目录执行, ping.sh----------------------------------------------------------------------bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本: 复制代码 代码如下: cd…
本文主要介绍paramiko远程执行linux命令,及在服务器上进行文件的上传.下载 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等都可以支持 远程执行命令 def ssh_connect(host, username, passwd, *commands): "&q…
由于需要,需要将一系列mysql的操作制作成.sh文件,只需要shell操作bash命令就可以傻瓜式的完成黑盒任务. #!/bin/bash mysql -uroot -p??? -e "create database IF NOT EXISTS test_db_test" mysql -uroot -p??? -e "use test_db_test;create table IF NOT EXISTS test_table_test ( name varchar(20),…
本文主要介绍Linux Shell的一些使用小技巧收集,非常实用,需要的朋友可以参考下. 查看本机某端口是否被占用 netstat -anpt | grep 22 查看远程某端口是否被开放 echo >/dev/tcp/8.8.8.8/53 && echo "open" 产生随机的十六进制数,其中n是位数: openssl rand -hex n 一次创建多个目录: mkdir -p {test1,test2,test3} 获取文本的md5值: 使用curl获取H…
在shell中有很多种命令的同义词,到底先执行的是哪一个命令呢,我们可以借助type -a命令来检查. 为了测试我们就对type本身做一条alias: alias type=type 然后我们通过type -a type查看一下,结果如下: type -a type type is aliased to `type' type is a shell builtin type is /usr/bin/type 可以清楚地看到,对于命令来说首先执行的是alias,然后是shell内嵌的命令,最后才是…
在命令行可以一次执行多个命令,有以下几种: 1.每个命令之间用;隔开 说明:各命令的执行结果,不会影响其它命令的执行.换句话说,各个命令都会执行, 但不保证每个命令都执行成功. cd /home/PyTest/src; python suning.py 1 2.每个命令之间用&&隔开 说明:若前面的命令执行成功,才会去执行后面的命令.这样可以保证所有的命令执行完毕后,执行过程都是成功的. cd /home/PyTest/src&&python suning.py 1 3.每…
linux命令之let.exprshell程序中的操作默认都是字符串操作,在运行数学运算符的时候可能得到意想不到的答案: var=1var=$var+1echo $var 将输出 1+1从这个例子中可以看出shell字符串连接的操作 let 命令let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量.运算符间不能有空格,如果表达式中包含了空格或其他特殊字符,则必须引起来.var=1 let "var+=1" # 或 let var+=…
最近再开发中遇到需要将文件上传到Linux服务器上,至此整理代码笔记. 此种连接方法中有考虑到并发问题,在进行创建FTP连接的时候将每一个连接对象存放至 ThreadLocal<Ftp> 中以确保每个线程之间对FTP的打开与关闭互不影响. package com.test.utils; import java.io.BufferedInputStream; import java.io.File; import java.io.FileFilter; import java.io.FileIn…
ssh主要参数说明 -l 指定登入用户 -p 设置端口号 -f 后台运行,并推荐加上 -n 参数 -n 将标准输入重定向到 /dev/null,防止读取标准输入 -N 不执行远程命令,只做端口转发 -q 安静模式,忽略一切对话和错误提示 -T 禁用伪终端配置 #!/bin/sh HOST_LIST="host1 host2 host3 host4" SSH_PORT=2202 for loop in $HOST_LIST do echo "executing in $loop…
1.首先ldd不是一个可执行程序,而只是一个shell脚本2.ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量如下:LD_TRACE_LOADED_OBJECTS.LD_WARN.LD_BIND_NOW.LD_LIBRARY_VERSION. LD_VERBOSE等.当LD_TRACE_LOADED_OBJECTS环境变量不为空时,任何可执行程序在运行时,它都会只显示模块的 dependency,而程序并不真正执行.要不你可以在shell终端测试一下,如下:(1)…
基本格式:test expression expression为test命令构造的表达式.这里expression是test命令可以理解的任何有效表达式,该简化格式将是读者可能会踫见的最常用格式返回值:test命令或者返回0(真) 或者返回1(假). test可理解的表达式类型分为四类: 表达式判断 字符串比较 数字比较 文件比较 1)判断表达式 if test  (表达式为真)if test !表达式为假test 表达式1 –a 表达式 2                两个表达式都为真tes…
在MySQL里面执行Linux的命令并返回结果 system commands root@localhost 11:36:23> system cal March 2017 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 root@localhost 11:36:29> 在Linux的bash环境下执行MySQL里面的命令并返回结果…
https://blog.csdn.net/honghuzhilangzixin/article/details/7073312/ 在Linux系统中,冒号(:)常用来做路径的分隔符(PATH),数据字段的分隔符(/etc/passwd)等.其实,冒号(:)在Bash中也是一个内建命令,它啥也不做,是个空命令.只起到占一个位置的作用,但有时候确实需要它.当然,它也有它的用途的,否则没必要存在.在·Linux的帮助页中说它除了参数扩展和重定向之外不产生任何作用. gnu 帮助:http://www…
一. 1.JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序. <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.53</version>…
概述 test 命令是Shell 脚本中用来进行条件判断的. test命令示例 按照文件类型进行判断 测试选项 作 用 -b 文件 判断该文件是否存在,并且是否为块设备文件(是块设备文件为真) -c 文件 判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真) -d 文件 判断该文件是否存在,并且是否为目录文件(是目录文件为真) -e 文件 判断该文件是否存在(存在为真) -f 文件 判断该文件是否存在,井且是否为普通文件(是普通文件为真) -L 文件 判断该文件是否存在,并且是否为符…