使用 shell 在多服务器上批量操作】的更多相关文章

需求 日常工作中,我们常需要同时在多台服务器上执行同样的命令,如对比日志.检查服务等.这就需要我们有服务器批量操作的能力. 两年前写过一篇文章,shell实现SSH自动登陆 使用 shell 的 expect 命令进行 ssh 登陆,这种方式的灵活性确实非常高,但实现起来比较麻烦,而且单进程阻塞的特性也是它的硬伤,如果使用它进行批量操作,就需要启动多个 expect 进程,涉及到各个进程和主进程的双向通信,处理起来非常麻烦. 不过我们可以借用 ssh 公钥登陆 的能力,方便地实现在多个服务器上批…
Java代码调用服务器上的Shell脚本 这里主要是因为我们报表平台有用到用户手工录入的数据作为结果数据且需要纳入saiku去展示 如我们所知,saiku不会自动刷新,所以需要在数据更新接口中调用服务器上的shell脚本 话不多说,上代码: (直接使用Eclipse, run  Java Application ,执行成功后脚本中的输出内容会打印到控制台) package saikuDemo1; import ch.ethz.ssh2.Connection; import ch.ethz.ssh…
说明: 用平常的方式在Linux服务器上安装程序,需要下载安装包.进入安装包位置.给安装包文件赋予可执行权限.执行安装.设置环境变量--等等一系列复杂的操作.并且如果有关联也需要一个一个的挨着安装.耗时并且繁琐.而用shell脚本来执行这些操作,则很好的解决了这些问题! 步骤: wget http://img006.com/badusoft/centosupNEW.sh // 在Linux服务器上执行wget命令下载shell脚本 chmod +x centosupNEW.sh // 给下载下来…
1.项目背景 因监控需要,我们需要在既有的每个MySQL实例上创建一个账号.公司有数百台 MySQL 实例,如果手动登入来创建账号很麻烦,也不现实.所以,我们写了一个简单的shell脚本,用来创建批量服务器的mysql 账号. 2.执行脚本内容; #!/bin/bash ## 此段shell 脚本的主要功能是实现在多个SQL Server IP实例上,创建账号.输入参数是两个,第一个是数据库所在的IPs,即多个Server IP构成的字符串,IP间用逗号隔开.第二个参数是 端口( 或 ) ##M…
在远程服务器上执行本地的shell脚本 [root@localhost zzx]# sh echoip.sh 192.168.67.131[root@localhost zzx]# ssh root@192.168.67.129 -C "/bin/bash" < echoip.shroot@192.168.67.129's password: 192.168.67.129[root@localhost zzx]#…
shell脚本实现自动压缩一天前的日志文件 ,并传到ftp服务器上 naonao_127关注2人评论19401人阅读2012-06-08 11:26:16         生产环境下脚本自动备份脚本是企业中重要工具.备份数据和日志等文件是公司的重要资产,所以有句话叫“备份是救命的稻草”(——出自抚琴煮酒<构建高可用Linux服务器>一书).         此脚本的作用是将制定目录下的日志文件备份,只备份当天和一天前的日志(日志命名格式精确到小时),并以当天的年月日为格式进行压缩,然后传送到指…
功能说明:批量在多台服务器上执行命令 #!/bin/bash # ========================================== # 功能:批量在多台服务器上执行命令 # 方法:./batch_cmd_manager.sh <cmd_to_exec> # 返回:各服务器执行命令返回的结果列表 # 前提:在待执行命令的各个服务器上设置了免密登录 # 警告:禁止执行删除.格式化等这样的可能造成严重后果的命令 # 日期:2018-04-23 # By:HackHan # 其他:…
首先我们在 一台服务器上部署svn,maven,jdk,tomcat,nexus,还有Jenkins. 这里我主要记录Jenkins. 首先我们从网上下载Jenkins的包 wget http://mirrors.jenkins-ci.org/war-stable/latest/jenkins.war 然后我们把包放到tomcat下的webapps目录下 然后启动tomcat,然后就是安装 Jenkins了.这里我们可以把该有的插件都给他装上,但是我们公司的网速实在是不敢恭维,所以我 这里一个插…
情景是这样的.. 网页打开一个数据列表..数据要求实时从其他多个平台上获取.. 所以就有了一个Web页面..还有个WinService的服务来定时获取这些数据... 问题来了.. 发现Service有时会无故的停掉..给Web端的数据呈现造成困扰.. 又不想出现问题就跑到服务器上开启服务..想如何能够通过Web来控制这个服务的开启和关闭.. ~~~~~~~~~~~~~~~~~~~~~开整~~~~~~~~~~~~~~~~~~~~ 首先创建一个Bat批处理文件..不懂什么是批处理文件的进  http…
参考文章: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000 http://wlog.cn/soft/git-ssh-server-for-debian.html 在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改. GitHub就…
Q: 最近配了个服务器,用的GIT,本地提交后服务器必须再拉取一下才能更新出来..求个提交后自动更新的方法 A: 最佳工具 git hook post-update.sample 改名为post-update 然后加几行简单的代码就能实现你的需求了 例: gitdir=/**** cd $gitdir git checkout 对应分支 git pull end... ------------------------------------- 最简单的办法就是服务器上用一个cron任务,定时拉取…
本文最初发布于我的个人博客:http://jerryzou.com/posts/gitForSAE/ 我花了一些时间自己写了一个能够极速地将一个git项目部署到SAE的svn服务器上的脚本.代码不是复杂,也没有很深的技术.但确实是个好用的小工具,至少对我来说,不用把我的git项目打包成zip再上传了,确实提高了超多效率!我将首先介绍一下脚本如何使用,再介绍我是如何实现这个shell脚本的.项目地址:https://github.com/zry656565/git-for-SAE 功能 一个脚本搞…
首先两台服务器可以无密码登录(这个方式比较简单,当然安全系数会降低) #ssh-keygen -t rsa #生成密钥发送给远程服务器上 #ssh-copy-id ~/root/id_rsa.pub user@host 这样ssh的时候就不用输入密码了.对于crontab这种定时自动运行的任务来说还是比较方便的. 现在就是写shell备份sql到远程服务器的脚本: #!/bin/sh DB_NAME1="" DB_USER="" DB_PASS="&quo…
网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-server服务.最终成功的方法如下: Ubuntu 下安装 OpenSSH Server 是无比轻松的一件事情,需要的命令只有一条: sudo apt-get install openssh-server (查看返回的结果,如果没有出错,则用putty.SecureCRT.SSH Secure Shell Client等SSH 客户端软…
前面的话 如果想与他人使用,除了使用Git来完成日常工作之外,还需要一个远程的Git仓库.尽管从技术上可以从个人的仓库里推送和拉取修改内容,但并不鼓励这样做,因为一不留心就很容易弄混其他人的进度.因此,更好的合作方式是建立一个大家都可以访问的共享仓库,从那里推送和拉取数据.我们将这个仓库称为"Git服务器":代理一个Git仓库只需要花费很少的资源,几乎从不需要整个服务器来支持它的运行 远程仓库通常只是一个裸仓库(bare repository)——即一个没有当前工作目录的仓库.因为该仓…
本文衔接上文"记录一次无聊的(经历了Nodejs -> Shell -> C)的探索问题过程",服务器上git版本是1.8.3.1,使用的pm2来管理nodejs进程,并且配置了一键deploy项目.在deploy执行过程中,新版本的pm2 => pm2-deploy的shell中没对git老版本做兼容,上文提到解决方案: 1. pm2-deploy做兼容,相关shell例子也已给出 2. 升级服务器git版本 本文围绕一次 git 升级操作展开,并且分享此次过程的操…
服务器上的 Git 到目前为止,你应该已经学会了使用 Git 来完成日常工作.然而,如果想与他人合作,还需要一个远程的 Git 仓库.尽管技术上可以从个人的仓库里推送和拉取修改内容,但我们不鼓励这样做,因为一不留心就很容易弄混其他人的进度.另外,你也一定希望合作者们即使在 自己不开机的时候也能从仓库获取数据 — 拥有一个更稳定的公共仓库十分有用.因此,更好的合作方式是建立一个大家都可以访问的共享仓库,从那里推送和拉取数据.我们将把这个仓库称为 “Git 服务器”:代理一个 Git 仓库只需要花费…
首先linux开放默认端口6379打开redis配置文件redis-conf注释掉 bind 127.0.0.1(默认只有本地主要才能访问)这个注释掉现在处于受保护的状态,外网连不上,因为没有密码 在服务器上,这里以linux服务器为例,为redis配置密码. 1.第一种方式 (当前这种linux配置redis密码的方法是一种临时的,如果redis重启之后密码就会失效,) (1)首先进入redis,如果没有开启redis则需要先开启:[root@iZ94jzcra1hZ bin]# redis-…
源码的编译安装及卸载 源码安装三部曲 1.生成makefile编译文件./configure 一般安装包下面都有一个configure文件,用来生成makefile编译文件常用的参数: --prefix 指定安装目录 --with-xx 指定依赖文件的目录2.make编译 make命令也需要安装,会根据./configure产生makefile文件编译写好的c语言程序,产生可运行的文件3.make install make install的作用是把编译好的文件复制到指定的目录下,也就是第一步--…
自己的小网站跑在阿里云的 ECS 上面, 偶尔也去分析分析自己网站服务器日志,看看网站的访问量.看看有没有黑阔搞破坏!于是收集,整理一些服务器日志分析命令,大家可以试试! awk '{print $1}' log_file|sort|uniq|wc -l   2.查看某一个页面被访问的次数: grep "/index.php" log_file | wc -l   3.查看每一个IP访问了多少个页面: log.txt 配合sort进一步排序   4.将每个IP访问的页面数进行从小到大排…
简介 Jacoco是一个开源的覆盖率工具.Jacoco可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序.很多第三方的工具提供了对Jacoco的集成,如sonar.Jenkins等. 官网地址:http://www.eclemma.org/jacoco/ Jacoco包含了多种尺度的覆盖率计数器,包含指令级(Instructions,C0coverage),分支(Branches,C1coverage).圈复杂度(Cyc…
[转]Shell编程基础篇-上 1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容.每一个合格 的Linux系统管理员或运维工程师,都需要能够熟练地编写Shell脚本语言,并能够阅 读系统及各类软件附带的Shell脚本内容.只有这样才能提升运维人员的工作效率,适 应曰益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础…
在Java编程中,如何检查文件是否在服务器上被修改了? 以下示例显示如何检查文件是否在服务器上进行了修改. package com.yiibai; import java.net.URL; import java.net.URLConnection; public class FileModificationTime2 { public static void main(String[] argv) throws Exception { URL u = new URL("http://www.y…
文档 管理全部用户的公匙 /tmp/id_rsa.ajanuw.pub // 这里全部放在 /tmp目录下 在服务器上创建一个名叫 git 的用户 adduser git // 一路回车 passwd git // 设置密码 su git // 切换到git用户 mkdir .ssh && chmod 700 .ssh // 在git的根目录创建 .ssh文件 touch .ssh/authorized_keys && chmod 600 .ssh/authorized_k…
有这样的场景,我们的ftp上都是些重要的资料,所以大家基本只有可看的权限,只有部分管理人员有可读可写的权限,但是jenkins上基本使用的都是ftp的路径,这个时候就存在一些问题,某些开发需要将自己构建的apk放到ftp上,通过jenkins构建传到阿里云服务器上测试,就没办法做了. 比如:A员工在测试apk升级,他打了一个包,要测试升级,正常的流程是,他把包给ftp的管理员,管理员放到ftp上,然后云平台测试人员在云平台发布这个apk,触发jenkins构建,传包到阿里云上,并返回apk在阿里…
在shell编程中经常需要获取远程服务器文件.手工操作中使用scp命令完成.为避免脚本执行scp输入密码进行交互,需先建立本机服务器当前用户和远程服务器指定用户的信任关系.具体代码见操作实例,重点关注getRemoteServerFile()函数,编程中可单独提取使用. 基础知识 1.scp,用于远程文件拷贝 #本地文件或目录上传到远程服务器,文件和目录用绝对路径 scp local_file remote_username@remote_ip:remote_dir scp local_file…
pip install Django 相关网站资源: Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架,由Python写成. Django采用了MVC的软件设计模式,即模型M,视图V和控制器C. Django安装以及下载手册,注意版本对应,安装后最后将Django安装路径添加到环境变量中,方便使用 1.开始创建项目: django-admin.py startproje…
1.中文名文件上传后保存在linux服务器上文件名会乱码,但是我们通过SSH直接对服务器上的一个文件进行重命名是可以使用中文的,而且显示出来是正确的,这说明服务器是可以支持中文的. 2.而为什么上传的中文名文件保存起来以后文件名会乱码呢?这是因为Windows的默认编码为GBK,Linux的默认编码为UTF-8.在Windows下编辑的中文,上传到Linux下就会显示为乱码.为了解决此问题,修改Linux的默认编码为GBK,就能够成功的解决乱码问题. 首先运行locale查看本地编码方式: 方式…
单台服务器上并发TCP连接数    问题:一台服务器到底能够支持多少TCP并发连接呢? 1. 文件描述符限制:    对于服务器来说,每一个TCP连接都要占用一个文件描述符,一旦文件描述符使用完,新的连接到来返回给我们的错误是"Socket/File:Can't open so many files" 这时,你需要明白操作系统可以打开最大文件数的限制. 进程限制(用户限制):            执行 ulimit -n 输出1024,说明对于一个进程而言最多只能打开1024个文件,…
http://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%90%AD%E5%BB%BA-Git 在服务器上搭建 Git 现在我们将讨论如何在你自己的服务器上搭建 Git 服务来运行这些协议. NOTE 这里我们将要演示在 Linux 服务器上进行一次基本且简化的安装所需的命令与步骤,当然在 Mac…