Tag: shell

  • rsync同步错误failed: Read-only file system (30)

    rsync同步错误failed: Read-only file system (30)

    你可能会碰到如下错误,检查文件和目录权限没有问题,rsync的ip授权也没有问题 提示目标文件系统只读,这是因为被systemd的配置限制了服务对系统文件的访问权限 更改文件/lib/systemd/system/rsync.service配置,默认是full,改为none 参数解释: ProtectSystem=none:没有特别的保护,服务可以自由地访问系统文件。ProtectSystem=full:会使/usr、/boot和/etc目录对服务来说是只读的,从而提供一定程度的保护。ProtectSystem=strict:除了full提供的保护外,这个设置还会将整个文件系统(包括/home、/root和运行时目录)都设置为只读。 然后重新载入配置即可systemctl daemon-reloadsystemctl restart rsync 还有一个选择,那就是用ReadWritePaths参数开放指定某个目录的权限,这样更符合安全守则 [Service]ProtectSystem保持默认配置 ProtectSystem=fullReadWritePaths=/data3/web

  • shell的文本处理(删除空格,转码,批量改名)
  • awk删除重复行的命令

    awk删除重复行的命令

    https://stackoverflow.com/questions/39824733/awk-to-remove-duplicate-rows-totally-based-on-a-particular-column-valuehttps://unix.stackexchange.com/questions/171091/remove-lines-based-on-duplicates-within-one-column-without-sort第三列重复的都删掉生成t2.txtawk ‘NR==FNR{c[$3]++;next} c[$3]<2’ t.txt t.txt > t2.txt 找出重复的行(第一列打印出行号)http://www.cocoachina.com/articles/113086cat t.txt | awk ‘n=x[$3]{print NR” “n;print NR” “$0;} {x[$3]=$0;}’ > dup.txt

  • email 邮箱重复删除
  • shell 判断文件夹或文件是否存在

    shell 判断文件夹或文件是否存在

    linux shell判断文件文件夹是否存在

  • 常用命令

    常用命令

    经典常用命令

  • shell下的翻译命令Translate-shell, translate to any language from the command line

    shell下的翻译命令Translate-shell, translate to any language from the command line

    项目地址:https://github.com/soimort/translate-shell 另外一个项目地址:https://www.soimort.org/translate-shell/ 两种安装方法:1、git clone https://github.com/soimort/translate-shell && cd translate-shellmakesudo make install 2、apt-get install translate-shell 安装完成后,以下是常用命令: 1、查看支持语言类型:trans -T 2、翻译中文到英文:#trans :en 你好 你好(Nǐ hǎo) Hello Definitions of 你好[ 简体中文 -> English ] interjectionHello!你好!, 喂!Hi!嗨!, 你好!Hallo!你好! 你好Hello, Hi, Hello there 3、翻译一个文本文件:trans :en file:///home/sapoclay/gtrans.txt 4、交互模式:trans -shell en:es thanks 其他具体用法可以参考github官网,或者以下帮助文档:

  • shell的数字循环、字母循环、指定顺序循环

    shell的数字循环、字母循环、指定顺序循环

    花括号for i in {1..3};doecho “$i What to do”done 循环字母: for i in {a..z};doecho “Letters is $i”done seq产生for i in seq 1 3;doecho “num is $i”done 条件循环小括号for((i=1;i<=3;i++));doecho “Cycle number is $i”done While循环i=1while(($i<=3));doecho “while run num is $i”i=$(($i+1))done

  • linux下shell命令对IP地址进行排序

    linux下shell命令对IP地址进行排序

    本文操作的vps是美国的buyvm.net购买的,特点就是不限带宽,不限流量,购买链接。 一个包含ip地址的文本 a 进行排序的命令: 或者:

  • 利用grep和prce2grep的正则方法来处理截取html源代码文件内容
  • shell脚本truncate命令利用关键词对文本文件进行截断
  • 检测监控域名过期天数的shell脚本代码

    检测监控域名过期天数的shell脚本代码

    可以用于检测域名过期天数

  • 判断服务是否正常运行

    判断服务是否正常运行

    怎么判断moneyslow.com是否正常正常呢?如果是我肉眼判断的话,我直接打开moneyslow.com的主页,比如http://moneyslow.com:4873,如果能看到页面内容则说明服务正常,如果看到”无法访问次网站“等字样则说明服务挂掉了。为了实现自动化的监控和重启,我们必须通过脚本程序来做,在此我们可以通过curl命令来获取http://moneyslow.com:4873页面的响应码,如果返回200则说明服务正常,否则服务挂掉了。我们使用curl命令的参数-I只显示响应头。然后通过判断响应头中是否包含HTTP/1.1 200 OK字样来检查服务是否正常。因此就有了以下程序: header=curl -I http://moneyslow.com:4873if [[ $header =~ ‘HTTP/1.1 200 OK’ ]]; thenecho ‘ok’elseecho ‘not ok’fi通过以上代码我们就可以监控服务是否正常了,我们再来拓展一下思路,其实我们还可以通过检查moneyslow.com服务进程是否存在来判断moneyslow.com服务正常与否。怎么判断进程是否存在呢?这里不再详细介绍,请参考一下代码: 查询有几个进程占用了4873端口 count=lsof -ti :4873 | wc -lif [[ $count -ne 0 ]]; thenecho ‘ok’elseecho ‘not ok’fi第二种方案不如第一种直观,我仍然把它写出来主要是提醒各位多多思考,不要拘泥于某一种方案。接下来我们仍然采用第一种更加直观的方案继续进行。 服务挂了以后自动重启在上一节中我们已经能够检查服务是否正常了,在这一节中我们要实现的是自动重启服务,这个就非常简单了,想想我们是怎么启动moneyslow.com的,嗯,我们是在控制台中输入一下命令,nohup moneyslow.com &,其中nohup让命令永远执行下去,即使用户退出也没有关系,&让程序在后台运行。两者结合起来就可以程序永久地在后台运行。 header=curl -I http://moneyslow.com:4873if [[ $header =~ ‘HTTP/1.1 200 OK’ ]]; thenecho ‘ok’;else# 重启服务nohup moneyslow.com &fi定期监控服务运行状况通过前面两个步骤我们已经写出一个脚本,它会检查服务是否正常运行,如果服务挂掉了就会重启。这还是这个检查工作是一次性的,需要我们不停地执行脚本。当然可以通过crontab命令(以后再介绍)实现,不过在这里我们将通过写一个死循环逻辑来实现每隔一段时间来检查服务是否正常运行。 while truedoheader=curl -I http://moneyslow.com:4873if…

  • shell字符串截取的几个方法

    shell字符串截取的几个方法

    Linux 的字符串截取很有用。有八种方法。 假设有变量 var=http://www.moneyslow.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符。 echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除 http:// 结果是 :www.moneyslow.com/123.htm 2. ## 号截取,删除左边字符,保留右边字符。 echo ${var##*/} ##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符 即删除 http://www.moneyslow.com/ 结果是 123.htm 3. %号截取,删除右边字符,保留左边字符 echo ${var%/*} %/* 表示从右边开始,删除第一个 / 号及右边的字符 结果是:http://www.moneyslow.com 4. %% 号截取,删除右边字符,保留左边字符 echo ${var%%/*} %%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符 结果是:http: 5. 从左边第几个字符开始,及字符的个数 echo…

  • shell中esac的用法

    shell中esac的用法

    esac in shell scripting Like fi for if. esac is the spell backward of “case”.  =================== #!/bin/sh FRUIT=”kiwi” case “$FRUIT” in “apple”) echo “Apple pie is quite tasty.” ;; “banana”) echo “I like banana nut bread.” ;; “kiwi”) echo “New Zealand is famous for kiwi.” ;; esac ========================== Happy scripting.

  • shell find sed 批量修改文件名

    shell find sed 批量修改文件名

    比如替换pic_001 为 001 for file in `find . -type f` do newfile=`echo $file | sed ‘s/pic_//g’` mv $file $newfile done

  • 求两个Linux文本文件的交集、差集、并集

    求两个Linux文本文件的交集、差集、并集

    一、交集 sort a.txt b.txt | uniq -d 二、并集 sort a.txt b.txt | uniq 三、差集 a.txt-b.txt: sort a.txt b.txt b.txt | uniq -u b.txt – a.txt: sort b.txt a.txt a.txt | uniq -u 四、相关的解释 使用sort可以将文件进行排序(sort排序是为了管道交给uniq进行处理,uniq只能处理相邻的行),可以使用sort后面的参数,例如 -n 按照数字格式排序,例如 -i 忽略大小写,例如使用-r 为逆序输出等 uniq为删除文件中重复的行,得到文件中唯一的行,参数-d 表示的是输出出现次数大于1的内容;参数-u表示的是输出出现次数为1的内容;那么对于上述的求交集并集差集的命令做如下的解释: sort a.txt b.txt | uniq -d:将两个文件进行排序,uniq使得两个文件中的内容为唯一的,使用-d输出两个文件中次数大于1的内容,即是得到交集 sort a.txt b.txt | uniq :将两个文件进行排序,uniq使得两个文件中的内容为唯一的,即可得到两个文件的并集 sort a.txt…

  • shell:读取文件的每一行内容并输出

    shell:读取文件的每一行内容并输出

    写法一: —————————————————————————- #!/bin/bash while read line do     echo $line done < file(待读取的文件) —————————————————————————- 写法二: —————————————————————————- #!/bin/bash cat file(待读取的文件) | while read line do     echo $line done —————————————————————————- 写法三: —————————————————————————- for line in `cat file(待读取的文件)` do     echo $line done —————————————————————————- 说明: for逐行读和while逐行读是有区别的,如: $ cat file aaaa bbbb cccc dddd $ cat file |…

  • shell 技巧 sed多行变一行的方法 sed删除保护某个字符串的行

    shell 技巧 sed多行变一行的方法 sed删除保护某个字符串的行

    删除文本含有特定字符的行 sed -e ‘/abc/d’ a1.txt > a2.txt 删除多个字符: sed -e ‘/abc/d;/def/d’ a1.txt > a2.txt

  • Linux shell mysql命令精华收藏

    sed合并两行,将 1 2 3 4 合并成: 1 2 3 4 sed ‘$!N;s/\n/\t/’ 文件名   按模式合并: sed ‘/2/{N;s/\n/\t/}’ 文件名     vi 里替换空格行 %s/^\n//g awk and sed 去掉第一列重复的行 awk ‘! a[$1]++’ t.lst 去掉重复行 awk ‘a!=$1{a=$1;print}’ yourfile sed -n ‘/<title>/,/<\/title>/p’ aaa.shtml |grep -v title 去掉,开头的行 sed -e ‘/^,/d’ t1.lst > t2.lst   shell 比大小和自增的例子 #!/bin/bash c=1;  …

  • Bash高危安全漏洞对F5设备的影响及处理解决办法

    F5建议解决方 案        如果用户的F5设备存在权限分级管理的情况,低级用户可以利用这个漏洞获得更高的管理权限,这是唯一的漏洞应用场景。如果用户只用管理员权限并在内网安全区内维护F5设备,将不会导致风险。 http://f5.com/shellshock 影响版本 Product Versions known to be vulnerable Versions known to be not vulnerable Vulnerable component or feature BIG-IP LTM 11.0.0 – 11.6.0 10.0.0 – 10.2.4 None Bash shell BIG-IP AAM 11.4.0 – 11.6.0 None Bash shell BIG-IP AFM 11.3.0 – 11.6.0 None Bash shell BIG-IP Analytics 11.0.0 – 11.6.0 None…