Welcome 微信登录

首页 / 操作系统 / Linux

expect实现单台、多台服务器批量scp传输文件

expect实现单台、多台服务器批量scp传输文件

今天公司同事要在一台服务器上对另外两台同机房的服务器进行文件传输,两台服务器的文件存放地址一致,密码和key也一致(我们公司在安全上做得有点变态的),为了效率写了下面这个脚本.1.单台传输脚本cat /root/soft_shell/allscp.sh复制代码 代码如下:#!/usr/bin/expectif {$argc < 2} { send_user "usage: $argv0 src_file username ip dest_file p...
Shell脚本实现监控kingate并自动启动

Shell脚本实现监控kingate并自动启动

自己在vps做的kingate服务端,估计最近占用流量太大了,老是被服务商把我vps重启,但kingate这个东西是一旦被强制结束掉,是无法开机启动的,因为要把kingate.pid这个文件删除了才能启动,好吧,对于我们这样的懒人来说,当然不能自己去登录服务器去手动删除并启动kingate,就写了个简单的shell脚本来替我完成这些。系统:centos 5.x脚本内容:cat kingate.sh复制代码 代码如下:#!/bin/bashkingate=`...
Shell脚本实现监控rsync数据是否传输完

Shell脚本实现监控rsync数据是否传输完

今天有台服务器a要把网站程序全部传输到另外一台服务器b上去,但离下班时间就只有1个小时了,为了准时下班,简单写了个shell脚本来监控是否有传输完,我先在服务器a上看了下网站程序总大小为12G,用du -sm查看也就是11517,服务器也不会有人再传东西上去了,所以我可以放心容量不会再变大了。系统:centos 5.x需要的软件:rsync脚本内容:复制代码 代码如下:#!/bin/bashfile=`du -sm /var/www/vhosts/|awk...
Shell脚本中使用for循环和cat命令实现按顺序合并文件

Shell脚本中使用for循环和cat命令实现按顺序合并文件

工作目录下面有mydoc1.txt,mydoc2.txt...mydoc41.txt,本来想用sed排列依次取值排序,然后用cat来合并这些文件,发现达不到预期效果,合并令如下所示:复制代码 代码如下:ls -lF *.txt | sed -n "/mydoc1/,/mydoc41/p" | xargs -i cat {}> >mynew.txt发现用其命令达不到预期效果,后来经检查发现,问题应该出现在sed排序上面,它仍然是按照位数来进行排序...
Shell脚本实现精准清除Squid缓存

Shell脚本实现精准清除Squid缓存

此脚本是在张宴的缓存清理脚本上做了修改的,主要是增加if选项,并根据$1参数类型来选择性的列出缓存文件所在地址(因为$1并不固定,有时是特定的jpg类型,有时是域名)目前在自己的Squid缓存服务器上应用,感觉采集缓存网址基本上没什么误差了,欢迎大家试用,争取将此脚本做到更加完美(此脚本在Centos5.4 x86_64,Squid2.7下通过)脚本内容如下:复制代码 代码如下:#!/bin/shsquidcache_path="/usr/local/sq...
获取shell脚本自身所在目录的Shell脚本分享

获取shell脚本自身所在目录的Shell脚本分享

前几天写的七牛的参赛demo,用bash写了一个便捷安装的脚本,涉及到了路径相关的判断,从stackoverflow,加上自己的实践整理一下。简单版下面是一个最简单的实现,可以解决大多数问题,缺陷是对于软链接显示的是软链接所在的目录lineos:false复制代码 代码如下:#!/bin/bashDIR="$( cd "$( dirname "$0" )" && pwd )"完善版这个版本解决了使用ln -s target linkName创造软链接无法正...
Shell脚本避免重复执行的方法

Shell脚本避免重复执行的方法

很多用cron定时执行的shell脚本可能会由于各种原因执行很久,会有必要在运行的时候先检查一下自身是否还在运行。本文提供的linux shell脚本用以检查以命令sh ...来执行的shell脚本。要对其他东西进行唯一性检查,可以稍微修改一下源代码。复制代码 代码如下:# 检查通过sh命令执行的shell脚本是不是还在执行当中,避免重复执行. # 把这段代码放在需要保证唯一性的程序头部即可# 注意,如果直接把此脚本放到cron里面执行的话,必须再grep...
Shell脚本实现查找字符串中某字符最后出现的位置

Shell脚本实现查找字符串中某字符最后出现的位置

需要对字符串查找其中某个字符最后出现的位置,这个在PHP (strrpos)或者Perl (rindex)里面都有现成函数可用的功能,在Shell里面居然一时想不出个道道来。在论坛上发贴也没人解答(不知道是问题太简单还是真的很高深...)。因为事情紧急等不得,于是求救大学同学。Pacman不愧是个中高手,三两下点醒梦中人:rindex.sh代码:复制代码 代码如下:#!/bin/bashstrToCheck=$1;charToSearch=$2;let p...
Shell中获取脚本所在目录绝对路径的方法

Shell中获取脚本所在目录绝对路径的方法

要得到正在执行的程序/脚本自身所存放的绝对路径,在 PHP 里面可以用 dirname(realpath(__FILE__)) ; C# 则有 System.Windows.Forms.Application.StartupPath ; java 似乎没有什么比较直接的方法,只能利用 CodeSource 来间接获取 。而在 linux shell 脚本里面如果想得到当前脚本文件存放的绝对路径,也没有太现成的命令可以调用,不过可以通过下面的语句来获取:复制...
Shell编程 Bash引号的那点事

Shell编程 Bash引号的那点事

先了解下,在bash脚本中,有三种引号1. 单引号 "2. 双引号 "3. 反引号 `单引号 两个单引号包围起来的字符串就是普通的字符串,它将保留原始的字面意思.双引号 两个双引号包围起来的字符串,部分特殊字符将起到它们的作用. 这些特殊字符有: 美元符$, 反斜杠, 反引号, 感叹号!.反引号 两个反引号包围起来的字符串,将作为命令来运行, 执行的输出结果作为该反引号的内容,称为命令替换, 它有另一种更好的写法: $(command)我们来看几个例子,更...
Shell脚本实现乱序排列文件内容的多种方法(洗牌问题)

Shell脚本实现乱序排列文件内容的多种方法(洗牌问题)

洗牌问题:洗一副扑克,有什么好办法?既能洗得均匀,又能洗得快?即相对于一个文件来说怎样高效率的实现乱序排列?ChinaUnix 确实是 Shell 高手云集的地方,只要你想得到的问题,到那里基本上都能找到答案。r2007 给出了一个取巧的方法,利用 Shell 的 $RANDOM 变量给原文件的每一行加上随机的行号然后根据这个随机行号进行排序,再把临时加上去的行号给过滤掉,这样操作之后得到的新文件就相当于被随机“洗”了一次:复制代码 代码如下:while ...
<< 161 162 163 164 165 166 167 168 169 170 >>