Articles of bash

如何检查特定的tomcat java实例的开放端口

目前我已经设法做到这一点: root@server:~# for i in $(netstat -lp | grep java | awk '{print $7}' | awk -F '/' '{print $1}' | sort | uniq); do ap=$(ps p $i | grep -v PID | grep activemq | awk '{print $1}'); done; netstat -lp | grep $ap tcp 0 0 localhost:32000 *:* LISTEN 23059/java tcp6 0 0 […]

PB / Torque交互作业:bash技巧在启动后运行命令

我在bash中使用pbs交互式作业,使用qsub -I启动,我想在启动后运行一些命令。 运行此命令后,我想继续像往常一样使用交互式预留。 我不确定如何做到这一点,因为像打开交互式ssh提示符一样,远程terminal完成后发出的命令,即qsub -I; hello qsub -I; hello 。 编辑:澄清,在上面的例子( qsub -I; hello ),我想在qsub保留,而不是在我预订的机器上运行hello 。 我知道我可以为qsub指定一个作业脚本,但从手册页我不认为它做我想要的: …这个工作是一个互动的工作。 脚本将被处理为指令,但不会被包含在工作中。

红帽5升级/狮身人面像search初始化启动挂起

我最近将虚拟机升级到了Redhat 5,并将Sphinx Search移到了该服务器上。 由于某些原因,当我尝试启动Sphinx时,启动脚本无法将searchd进程推到后台。 我使用最小版本的启动调用创build了一个testing脚本,如下所示: #!/bin/sh . /etc/rc.d/init.d/functions daemon /usr/local/sphinx/bin/searchd –config /home/app/code/server_config/sphinx_config.php searchd进程开始,我得到的输出表明它正在侦听正确的IP:端口,但是这个进程永远不会返回。 挂起的过程在守护进程调用中,ps显示为: /bin/bash -c ulimit -S -c 0 >/dev/null 2>&1 ; /usr/local/sphinx/bin/searchd –config /home/app/code/server_config/sphinx_config.php 任何想法可能会导致这种情况或如何排除故障? 我们在运行Redhat 4的其他十几台服务器上使用相同的进程,虽然由守护进程创build的进程使用initlog,所以它是不同的。

大的延迟开始“dd”在bash的背景下写入,即使使用nohup

我写了一个小脚本来打印内存使用情况,在一个大的顺序写入文件。 #!/bin/bash rm result echo 3 > /proc/sys/vm/drop_caches sync; echo start nohup time dd if=/dev/zero of=mem bs=1M count=2000 & for i in {1..200} do sleep 0.2 cat /proc/meminfo | grep Dirty >> result cat /proc/meminfo | grep Dirty done cat nohup.out cat result 我应该从运行开始就看到“脏”的大小的增加。 但是当我运行这个脚本的时候,经常会看到一个很大的延迟(最多几秒钟),在这个过程中,“Dirty”大小不会增加,这可能意味着“dd”程序的启动被延迟了。 示例有问题的输出是: Dirty: 20 kB Dirty: 20 kB Dirty: 20 kB […]

如何脚本屏幕创build多个窗口?

我有一个小屏幕的问题。 我想在一个屏幕会话中启动几台服务器,所以我做了一个小脚本来devise每个窗口一台服务器。 #!/bin/sh screen -dmS servers screen -S servers -t http -p 0 sh -c "cd /servers/start/httpo ; run.sh" screen -S servers -t sql -p 1 sh -c "cd /servers/start/sql ; run.sh" … 但是它不能正常工作 – 会话被创build,但是所有的命令从第一个窗口开始。 我阅读手册页,但我仍然无法find我做错了什么。

自动完成,历史和滚动在Byobu

我正在使用Byobu的Ubuntu服务器。 出于某种原因,Tab键写入一个选项卡,而不是完成命令和path。 顶部箭头写^[[A而不是命令历史。 滚动写^[[B 我想知道如何解决这个问题:这是一个byobuconfiguration问题,键盘问题?

检查Git存储库中是否存在文件夹…testingbash中是否存在以NULL作为分隔符的子string

我有一个用于几个项目的普通git“post-receive”脚本,如果根目录中存在/ app /或/ public /文件夹,它需要执行不同的操作。 使用: FOLDERS=`git ls-tree -d –name-only -z master`; 我可以看到目录列表,我想在bash中使用RegExp支持来运行如下所示的内容: if [[ "$FOLDERS" =~ app ]]; then … fi 但是,如果有像“ 应用程序 ”文件夹那样的话,那么这将不起作用…我在git“ls-tree”命令中指定了“-z”选项,所以我可以使用\ 0(空)字符作为分隔符,但不知道如何testing在bash RegExp。 同样,我知道支持在ls-tree命令中指定一个特定的path,然后可以将其转换为“wc -l”,但是我认为获得完整的根目录列表(不是recursion),然后用返回的输出testing2(或更多)文件夹。 可能涉及到: https : //stackoverflow.com/questions/7938094/git-how-to-check-which-files-exist-and-their-content-in-a-shared-bare-repos

Shell脚本从文本文件parsingip:port

我每天都会得到一个带有ip:port的文本文件,每行一个,例如: 11.22.33.44:80 22.33.44.55:8080 33.44.55.66:7777 我想parsing两个不同variables的第一个ip和端口,然后将它们写入另一个文件,等待一个使用这些variables的程序的执行,循环这个循环将所有的ip:port传递到文件并执行程序。 我怎样才能做到这一点?

脚本在本地和通过ssh的不同行为

我有一个服务器上的脚本-A 脚本-A #!/bin/bash -l echo "script-A.sh" | change-environment.sh 当我ssh到服务器-A并执行它,它工作正常。 但是,当我 ssh user@server-A ./script-A.sh Script-A执行,但在change-environment.sh中引发一个未定义的variables错误。 change-environment.sh在c shell中运行(我无法控制脚本,所以我使用的方法是唯一的方法,我可以使用它),但其他一切都在bash中。 发现了一个类似的问题, 我可以在本地运行脚本,但不能做“ssh HOSTNAME /path/to/script.sh” 。 但是这个问题还没有解决,已经一岁了。

用arpwatch文本文件数据库更新mysql数据库

我正在寻找保存arpwatch条目在mysql数据库与我基于mac地址存储的其他信息交叉引用。 我已经手动将arpwatch数据库导入到我的mysql数据库中,但作为数据库的新手,我不确定用新条目不断更新数据库而不创build重复项的最佳方法是什么。 没有一个领域可以是唯一的,即使时间频繁地重复。 我对触发器或新站等实际arpwatch事件不感兴趣,只是mac / ip /时间配对。 一个简单的bash(或sql)shell脚本可以做到这一点吗? 是否有可能使mac地址加上时间是某种复合键? 数据库被称为实用程序,表是arpwatch,列是mac,ip,time 一个名为“主机”与列MAC,IP,types,主机名,位置,笔记的独立表具有MAC作为主键。 这个表格将使用arpwatch列将随着时间的推移关联不同的IP地址 使用INSERT INTO命令和MySQL Workbench进行初始导入,并使用创意search并replace文本文件