Articles of shell

在linux shell上显示特定的日志文件部分

我正在寻找从日志文件中获取特定信息的方法。 这是我的日志文件: —— [SQL STATEMENT MAYBE SEVERAL LINES LONG ] ERR: [01.02.2012 14:17:44] [[SOME][MORE][INFO] additional debug informations] [corresponding source file] —— [SQL STATEMENT MAYBE SEVERAL LINES LONG ] ERR: [01.02.2012 14:21:42] [[SOME][MORE][INFO] additional debug informations] [corresponding source file] —— [SQL STATEMENT MAYBE SEVERAL LINES LONG ] DEBUG: [23.08.2011 22:30:01] [] [corresponding source file] —— 这个日志文件包含sql语句的debugging和错误信息。 […]

bash IP whois查找脚本

我有一个体面的pipe理脚本,用于检查login的Web应用程序的IP地址,但是我需要在开始的时候更加喜欢一个whois,然后我想到了一个geoip。 目前我已经清除了whois部分 – 我的问题是因为有多个IP – whois不知道如何处理它们 任何想法都会很棒 geoips上的想法也是可爱的! 干杯 #!/bin/bash #Setting date and time (y and z aren't being used at the moment) x="$(date +'%d/%b/%Y')" y="$(date +'%T')" z="$(date +'%T' | awk 'BEGIN { FS =":"} ; {print $1}')" #Human readable for email title emaildate=$(date +"%d%b%Y–Hour–%H") #Setting date and time for grep and filename beta="$(date +'%d/%b/%Y:%H')" […]

无法将程序与双击Tab中的Bash的总数相匹配

在Bash ,如果我按Tab键两次,那么我看到: 显示全部1092个可能性? (y或n) 片段: ! diff ifconfig mount.fuse rcsdiff tiff2pdf ./ diff3 ifdown mount.ntfs-3g rcsmerge tiff2ps : diffutils-cmp ifenslave mount.ntfs-fuse rdisc tiff2rgba GET diffutils-diff iftop mountpoint rdjpgcom tiffcmp HEAD diffutils-diff3 ifup msgattrib read tiffcp MAKEDEV diffutils-sdiff ifup-local msgcat readelf tiffdiff POST dig igawk msgcmp readlink tiffdither [ dir igd-client msgcomm readonly tiffdump –More– 我认为如果我search$PATH环境variables中的目录中的所有可执行文件,那么这将产生一个匹配more显示的数据的列列表。 […]

无法为新添加的linux用户设置密码

我用这个cmd来添加一个新用户和一个新组。 # groupadd lfs # useradd -s /bin/bash -g lfs -m -k /dev/null lfs # su lfs $ passwd Changing password for lfs. (current) UNIX password: 那么不pipeinput什么密码(我的root passwd,或者一个全新的密码),都是失败的。 $ passwd Changing password for lfs. (current) UNIX password: passwd: Authentication token manipulation error passwd: password unchanged 我的设置有什么问题? 我怎样才能成功设置passwd? 谢谢 !

我需要从Linux服务器中删除所有非PHP文件或下载它们

我有成千上万的文件,也许成千上万的Linux服务器上的文件,他们在目录和子目录 – 这些文件全部位于/ home / sas / httpdocs中 – 我想用php文件得到整个目录的副本,但保留相同的目录结构 – 我有两个select: 要么删除所有的非PHP文件,然后tarball并下载它 – 或者只是简单地提取所有的PHP文件在一个新的目录,但保持相同的目录结构 – 任何想法如何做到这一点? SAS

并行运行shell脚本中的ssh并设置远程variables

我正在写一个脚本来读取input文件,其中包含1000行的主机信息。 脚本ssh到每个主机,cd到远程主机的日志目录,并捕获最新的每日日志文件。 然后我在本地redirect猫日志文件做一些模式匹配和统计。 我的程序的简化结构是一个while循环,看起来像这样: while read host do ssh -n name@$host "cd TO LOG DIR AND cat THE LATEST LOGFILE" | matchPattern done << EOA $(awk -F, '{print &7}' $FILEIN) EOA matchPattern是匹配模式和统计的函数。 现在我有两个问题: 1)如何远程查找最新的日志文件? 最新的日志文件名称与xxxx2012-05-02.log相匹配,并且是最新创build的,是否可以远程执行ls并find与xxxx2012-05-02.log文件名匹配的文件?(我可以在本地执行此操作,但会卡住当它附加到SSH命令)另一种方式,我可以想出的是做 cat 'ls -t | head -1' or cat $(ls -t | head -1) 但是,如果我追加到ssh,它会列出我的本地最新创build的文件名,我们可以将其设置为一个远程variables,以便猫会find正确的文件? 2)由于有将近1000个主机,我想知道我是否可以同时做到这一点(比如一次做20个ssh,在前20个完成之后做20个ssh),追加&到每个ssh似乎还不足以完成它。 任何想法将不胜感激! 后续行动:大家好,我终于find了一个糟糕的方式来解决第一个问题,做到这一点: ssh -n name@$host […]

如何在多个主机上使用ssh和xargs运行bash脚本,而脚本不会复制到每个主机上?

如何在多个主机上使用ssh和xargs运行bash脚本,而脚本不会复制到每个主机上? 这工作, ssh host1.com bash -s <〜/ httpd-conf / weblogrotate.sh 这不起作用, 猫webserver.hosts | xargs -I%ssh%bash -s <〜/ httpd-conf / weblogrotate.sh tcsh:模糊inputredirect。 猫webserver.hosts host1.com host2.com host3.com

等待所有具有特定扩展名的文件停止存在

我有一个shell脚本解压一堆文件,然后处理这些文件,然后再次将它们拉回来。 我想等待处理,直到所有的文件都解压缩完成。 我知道如何做一个文件: while [ -s /homes/ndeklein/mzml/JG-C2-1.mzML.gz ] do echo "test" sleep 10 done 但是,当我这样做 while [ -s /homes/ndeklein/mzml/*.gz ] 我得到以下错误: ./test.sh: line 2: [: too many arguments 我认为,因为有超过1个结果。 那么我怎样才能做到这一点的多个文件?

在文件中每出现一个字符就插入一些东西

我有一个包含查询的文件,每个查询以“;”结尾,我想添加一个“COMMIT; BEGIN;” 每100个查询。 查询可能需要超过1行。 例如: INSERT INTO table VALUES(…); DELETE FROM table WHERE …; UPDATE table SET …; 所以我想每100个取代一次“;” 以“COMMIT; BEGIN”开始 (我知道我必须添加一个BEGIN;在文件的开头,最后做一些事情,但是很简单) 我需要在shell脚本中这样做,但我不是Linux专家,使用sed或awk(文件大小可能像4GB那样大)会更好吗? 我知道这些命令的基础知识,但我不知道我是否可以在这里做我想做的事情… 谢谢!

在返回接地和子处理期间的可变访问性

我有以下两个脚本: “scr1.sh” #!/bin/sh func_in_scr1() { echo func_in_scr1 var is $var } var=7645 func_in_scr1 & ( func_in_scr1 ) ./scr2.sh “scr2.sh” echo in scr2 var is $var 这是输出: func_in_scr1 var是7645 func_in_scr1 var是7645 在scr2 var是 题: 当scr1.sh中的函数在bg和subshel​​l中运行时,它可以访问$ var的值。 但是scr2.sh无法访问$ var的值。 我的印象是,一个subprocess(subprocess)只能访问导出的variables而不能导出variables,所以我特别被#1惊讶。 有人可以解释这个结果吗?