一个简单的文件增量备份shell脚本,有需要的朋友可以参考下。 复制代码 代码如下: #!/bin/bash # Back files and dirs for full and increment. # backup.sh [full|inc] file1 file2 dir1 dir2hostname-[full|inc]-date.tgz #==============================...
cat EOF 使用一例,用下面方法很简单的按格式写入文本: 复制代码 代码如下: #!/bin/sh cat EOF /etc/hosts Please Write your message want to attach here. # This is just a test. 127.0.0.1 localhost EOF #----------- echo test /etc/hosts sed......
本文分为两部分: 1) 基本观点和概念; 2) AWK 文本解析的例子。 一、基本观点和概念 1 AWK 是一种用于处理文本的编程语言工具。 2 AWK 命令格式:AWK {pattern+action} 或者是AWK pattern {action} 3 action 参数总是被大括号包围,它由一系列awk语句组成,...
shell比较两个字符串是否相等的方法及shell比较运算符。 比较两个字符串是否相等的办法: if [ $testx = testx ]; then 关键有几点: 1 使用单个等号 2 注意到等号两边各有一个空格:这是unix shell的要求 3 注意到$testx最后的x,这是特意安排的,因为当$te...
用shell+sendmail写的服务器监控报警小脚本,有需要的朋友可以参考下。 这种email报警脚本遍地都是,很多用的sendmail、postfix,感觉有些大材小用了;也有些用perl的NET::SMTP和Authen::SASL模块发信的,不过我perl用的不好,老发出些莫名其妙的邮件来(比...
因为不同服务的管理方法不同,上次关闭了ssh的外网登录以后,各地不断有服务器报出这样那样的问题。 主管要求:全面检查! 在检查中,还真发现不少问题。 最突出的问题是:很多本应该上传到中心服务器的日志居然一直留在本机没动弹!时不时发作出来,就撑爆...
对awk很是入迷,打算把exp.log的处理那段都用awk写出来。发现awk有个内置参数NR,而且awk内部也可以进行运算。 脚本内容: 复制代码 代码如下: #!/bin/bash for ip in `cat ip.lst` do ./ssh.exp $ip /dev/null 21 done NK=`awk BEGIN{bs=4000000}/access/{i...
awk变量应用之使用RS和RT,有需要的朋友可以参考学习下。 如果标准化一点,在BEGIN{}里可以区分成输入输出的FS和OFS、NR(当前行数)、NF(当前域数)和$0(当前行全部内容),如果仅是作一般的处理,这些也够用了。 本文为大家介绍另外两个好东东,RS和RT。...
awk变量应用实例(NR与FNR的应用) 在写squid的自动配置脚本时,使用到了sed的/r把一个文件的内容插入另一个文件。 今天看到awk对两个文件的处理方法,要通过不少运算,不怎么方便。 不过作为加深对NR和FNR的不同的理解,还是有些作用。 先说下NR和FNR的不同...
awk中调用shell变量的例子,有需要的朋友可以参考下。 问题: 因为某个原因,需要长期探测对某机器的ping值情况。期望的输出格式是丢包率 响应时间均值。 写个小脚本,最后echo一下,自然好办的很。不过在crontab里看到之前大都有一条任务写的是ping 1.2.3.4...
awk的内置函数 内置变量的中文翻译: ARGC命令行参数个数 AGRV 命令行参数排列 ENVIRON 支持队列中系统环境变量的使用 FILENAME 浏览文件名 FNR 浏览文件的记录数 FS 输入域分隔符 NF 浏览记录的域个数 NR 已读的记录数 OFS 输出域分隔符 ORS 输出记录分隔符...
我们在写sh的脚本时,常常需要在运行时输入一些数据。 大家可能已经了解过如何使用基本的$*,执行的情况,大概就是$0 $1 $2 $3 那么,那些系统命令里的参数又是如何做出来的呢? 我们如何在自己的脚本中实现$0-$1的效果呢?这就是getopts的作用了。 来看一个...
awk中让人头疼的system()函数,有需要的朋友参考下。 发现一个特尴尬的事实。我辛辛苦苦去百度资料,想用rewrite实现针对不同域名源站故障后的自动跳转功能,但整个思路里遗漏了一个严重的问题。 按我的思路,针对请求的url进行一次curl,然后根据http_code...
需求:要求获取用户输一个字符a-zA-Z: 方法一: 复制代码 代码如下: echo `echo {a..z}``echo {A..Z}` /tmp/letterfile while read -p please input a letter: letter do ((`awk-v var=$letter BEGIN{print length(var)}` == 1)) grep -q $letter /tmp/tmpf...
需求:找出某一目录下只有一行内容的文件。 演示例子,如下所示: 复制代码 代码如下: [root@station1 ~]# mkdir findtest [root@station1 ~]# cd findtest [root@station1 findtest]# mkdir abc [root@station1 findtest]# echo nihao 123.txt [root@statio...
描述: 公司服务器一般通过ssh进行远程管理。以前大家登录时,都是随意选内外网IP进入。现在要求必须禁了外网ssh。 第一思路,用iptables把外网ssh的包DROP掉; 第二思路,用tcpwrapper把sshd的allow写死; 第三思路,修改sshd_config,只监听内网请求。 原...
计算两个日期相差多少天数的shell脚本 复制代码 代码如下: #!/bin/bash #the days between your input and today! #2012-10-07 year(){ while read -p please input the year(must be YYYY ): YEAR do if ((YEAR=1990)) ((YEAR=9999));then echo $YEAR break...
需求:待备份的文件已列在一个文件中,要求备份的文件的路径和ftp服务器上的文件路径一致。 代码如下: #!/bin/bash cd /tmp while read FILE do DIR=`dirname $FILE` FNAME=`basename $FILE` mkdir $DIR /usr/bin/ftp -niv ! open 192.168.1.251 user tom 123...
我们知道,命令head、tail、uniq和tac都是逐行操作的。 但请也记住,不管何时,只要需要进行逐行处理时,均可以用awk来解决。 接下来,我们看看如何使用awk来模拟这些命令。 来看一下如何用不同的awk命令来模拟诸如head、tail、tac等命令。 模拟head命令读取...
本文介绍的内容,考查了一些简单的文本替换技术及bash中可用的参数扩展简写法。 这些简单的技巧通常能够让我们免于敲入多行代码之苦。 注意看以下的实例,强烈建议你在学习时,自己动手实践一下。 替换变量内容中的部分文本: 复制代码 代码如下: $ var=This...
使用sed和awk分别处理文本的双行模式。 文本内容: 140203196407011616 140203000108058 140203198809161616 140203000108058 要求结果如下: 140203196407011616,140203000108058 140203198809161616,140203000108058 首先,看下sed代码,sed中的N操作可以...
使用shell快速查看局域网中主机的IP地址的代码,注意,此脚本只是快速查看所在局域网中其它主机的IP地址,如果对方设置了禁ping,则无法显示出此主机的IP地址哦。 [root@station1 ]# cat ping.sh 复制代码 代码如下: #!/bin/bash for i in `seq 1 254` do {...
awk正则表达式{}该怎么使用,总是不生效,其实看看man文档就明白了,加上--posix参数即可。 man文档中的解释如下: r{n,m} One or two numbers inside braces denote an interval expres- sion. If there is one number in the braces, the preceding regula...
如果你以为使用awk或者cut输出第一个和第四字段便可以的话,那你就错了,passwd文件中只有gid没有组名,那样的话还需要group文件,做gid到组名的映射。 问题:求出passwd中uid500的用户名和组名? 代码: awk-F: NR==FNR{group[$3]=$1}NR!=FNR{if($4500)prin...
使用shell进行判断一个文件是否存在,如果不存在则创建它。 复制代码 代码如下: #!/bin/bash proclock(){ if [ -e $1 ];then echo this file is exist.. else echo this file is not exist,but while be touch.. touch $1 fi } read -p please input the fil...
linux的子shell到底是怎么定义的呢? 子shell莫非就是shell打开一个新shell去执行程序,不过有时会让人很困苦的。 复制代码 代码如下: [root@jbxue ~]# a=123 [root@jbxue ~]# (echo $a) 123 [root@jbxue ~]# echo echo $a 1.sh [root@jbxue ~]# cat 1.sh ech...
将标准输出与标准错误输出的文件描述符路径调换的例子,有需要的朋友不妨参考下。 复制代码 代码如下: [root@station ~]# adfasdf | cat -bash: adfasdf: command not found [root@station ~]# adfasdf | cat 123.txt -bash: adfasdf: command not found [ro...
有关shell的bash的启动文件相关知识。 bash的启动文件 启动文件就是当bash启动的时候执行的一些脚本文件,下面介绍下不同方式启动shell,会执行的启动文件。 bash有两种工作模式:交互模式和非交互模式(即shell scripts模式)。 登陆shell 一个登陆shell就是系统...
例子: 重启filebeat 升级版 #!/bin/bash ps -ef|grep filebeat |grep -v grep|cut -c...
crontab是linux自带的计划任务程序,可以实现分,时,日,周,月。 但是crontab有两个...
我在 CU 的日子并不长,有幸在 shell 版上与大家结缘。除了跟众前辈学习到不少技巧之...
cpu时间是一项重要的资源,有时,我们需要跟踪某个时间内占用cpu周期最多的进程。 在...
介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介...
Shell是一种具备特殊功能的程序,它是介于使用者和 UNIX/Linux 操作系统之核心程序(k...