我刚刚摆脱了一个快速的脚本,使奴隶的Web服务器与使用rsync的主同步。 ( https://github.com/simonjgreen/liveFolderSync/blob/master/liveFolderSync.sh ) 我想通过一般的/etc/init.d / …或者service命令来启动它,并且可以通过这个命令进行控制,但是这个区域我总是陷入困境。我发现两个init.d脚本和暴发户脚本混乱,并无法从任何地方从头开始指南。 我想要的唯一的控制是开始/停止/重新启动。 很明显,以后我会把configuration文件移动到/ etc中的一个单独的文件中,但是已经放在了这个问题的范围之外。 任何指针/build议和最佳实践将是有益的。 我应该补充一点,我在Ubuntu上做这个。
所以必须注意到,iotop不适用于2.6.18,因为它小于2.6.20并且需要Python 2.6+。 我已经做了一些研究,并遇到了这篇文章: http : //lserinol.blogspot.com/2009/09/io-usage-per-process-on-linux.html 据此,如果这些进程在/ proc / pid#/ io(其中pid#是进程#)中具有io统计信息,则无论内核版本如何,都是可行的。 所以,实际上,我可以将Python升级到2.6并testingiotop。 不过,我的Linux,CentOS release 5.5(Final)的味道,目前只支持Python 2.4.3-44.el5。 如果我要从百胜卸载,它看起来不那么漂亮。 它最终希望卸载235包,其中大部分是非常重要的! 我在一个地方,在线阅读(我忘记了昨天的URL),你可以安装Python 2.6+并行到这个,并有安装iotop rpm的使用。 那么,我没有select那条路线。 我想,这是什么,让我写下iotop(不复制它,但反向工程,而不真正看它的代码/它在使用中)在bash中。 我以为这只会抓住/ proc / pid#/ io文件并parsing统计信息。 所以我写了一个脚本,通过从所有/ proc / pid#/ io文件中收集所有这些统计信息,按照每个度量标准对它们进行sorting,然后获取前10个最高值,从而获得前10个rchar,wchar,read_bytes和write_bytes。 结论,数据似乎完全没用。 有谁知道高级Linux的任何资源,我可以弄清楚如何获取这些/ proc / pid#/目录,并找出他们在磁盘上使用io做什么? 我的主要目标是弄清究竟是什么导致我的磁盘上的高负载。 我只是知道它在/分区(在这种情况下的/ dev / sda2),我真的不知道如何在没有iotop的帮助下缩小它。 如果我运行iostat来抓取1分钟的指标,那么每秒钟的第一个结果就会显示出一个很高的“kB_read / s”,这让我觉得它大部分是读取的。 但是,如果我观看更新,它每秒都会给我,实际上只是显示kB_wrtn / s的值。 这让我觉得iostat给我的初始价值是误导性的。
我需要一种方法,通过作为安装程序的一部分运行的postflight脚本将应用程序添加到login项目中。 它需要工作在10.5+。 最好,它将工作在一个bash脚本。 我的申请已经需要pipe理权限。 我在这里find的方法︰https: //stackoverflow.com/questions/4912212/mac-os-login-items-with-arguments似乎是在正确的轨道(包括下面)…但没有工作,当我尝试它在命令行上,我不知道如何使它安装所有用户,或者如果我需要添加逻辑来检查它是否已经添加到启动项目调用此代码之前。 #!/bin/bash /usr/bin/osascript -e "tell application \"System Events\" to make new login item with properties { path: \"$1\", hidden:false } at end" 我怀疑我也可以用launchd做些事情。 但是,我不确定哪种方法是跨版本兼容的最佳实践。
我创build了一个shell脚本,询问连接的用户一个问题,然后给他提示。 shell将问题发布到数据库进行日志logging。 问题是我们的开发人员正在使用共享帐户,但是每个用户都有私钥。 有没有什么方法可以用shell脚本(bash)读取连接用户的公钥?
如何configurationbash或tmux来制作konsole更改窗口标题? 如果我从xterm运行tmux,它会改变标题 但是从konsole不改变 我在bashrc中也有一些技巧 #窗口标题 如果[“$ SHELL”='/ bin / bash'] && [! -z“$ KONSOLE_DBUS_SESSION”] 然后 在$ TERM的情况下 在rxvt | *项) trap'qdbus org.kde.konsole $ KONSOLE_DBUS_SESSION org.kde.konsole.Session.setTitle 1 $ HOSTNAME \:\ $ BASH_COMMAND'DEBUG ;; ESAC 科幻 而这个标题后,从bash手动更改,但如果运行tmux它不会再改变! 陷阱 更新 :我需要的是konsole窗口标题中的%w修饰符。 解决了
我们正在RHEL上运行一个应用程序,它正在尝试将一个神秘的日志文件写入一个不存在的目录。 我试图确定一个查找命令,可以通过在开发和mkdir log每个子目录,而不会在过程中创build一个recursion的无限循环。 所以如果我从一个非常基本的编辑视图的文件夹结构类似于: -dir1 –dir11 –dir12 -dir2 –dir21 –dir22 -dir3 –dir31 –dir32 我想最终的结果是 -dir1 –dir11 —log –dir12 —log –log -dir2 –dir21 —log –dir22 —log –log -dir3 –dir31 —log –dir32 —log –log 什么bash命令可以创build这个结构?
我有这个小python3脚本test.py : import sys print('test1') test1 = sys.stdin.read() print('test2') test2 = sys.stdin.read() print(test1) print(test2) 我想通过ssh远程运行这个脚本,如下所示: ssh srvid 'cd; python3 test.py' 我希望程序打印test1 ,然后等待input,然后打印test2 ,再等待input。 但行为有些不同: ssh srvid 'cd; python3 test.py' hell test1 test2 hell 程序首先等待input。 我已经进入了hell ,按enter键,然后ctr + d为eof。 脚本没有等待第二个input,并打印出test1和test2 。 看来,标准input/标准输出不知何故被封锁。 我在bash中尝试了同样的例子: #!/bin/bash echo "Hello world"; read test; echo "helloworld 2"; read test2; echo $test; […]
我创build了一个bash脚本,用telnet检查与主机的连接。 这是核心代码: telnet $X 2404 < $TEST &>/dev/null if [ $? -ne 0 ] ; then echo -n "$X " >> $LOG_FILE echo "OFFLINE <—" >> $LOG_FILE else echo -n "$X " >> $LOG_FILE echo "ONLINE" >> $LOG_FILE fi 我想有三个分离的消息: 在线build立telnet 脱机连接被拒绝 超时连接超时 问题是“连接被拒绝”和“连接超时”都返回退出状态1。 任何想法? 谢谢大家。
我在我的Mac上安装了XAMPP,并且我想让命令行PHP使用与XAMPP相同的可执行文件,因为我已经定制了php的php.ini文件。 我想要的php二进制文件位于: /Applications/XAMPP//xamppfiles/bin/php 快速检查我的CLI从哪里来的说: Casey-Flynns-MacBook-Air:~ casey$ whereis php /usr/bin/php 我已经尝试将以下行添加到我的〜/ .bash_profile: export PATH=/Applications/XAMPP//xamppfiles/bin/:$PATH 我的$ PATH全球快速testing说: Casey-Flynns-MacBook-Air:~ casey$ echo $PATH /Applications/XAMPP//xamppfiles/bin/:/Applications/SenchaSDKTools-2.0.0-Developer-Preview/jsbuilder:/Applications/SenchaSDKTools-2.0.0-Developer-Preview/command:/Applications/SenchaSDKTools-2.0.0-Developer-Preview:/opt/local/bin:/opt/local/sbin:/sw/bin:/sw/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin:/opt/local/bin:/usr/X11R6/bin:/Users/casey/.ec2/bin 但是当我从命令行执行'php'时,它使用了我不想要的二进制文件。 任何人都知道可能会发生什么?
我有一个命令行进程,由我的ruby轨应用程序运行使用ImageMagick“转换”命令将PDF转换成多个PNG。 问题是,当我运行命令时,我的VPS上的所有内存(512MB),并呈现许多其他function(Web服务器,SSH等)。 我的转换命令是这样的: convert -density 288 ./document.pdf -resize 25% ./pages/page_%03d.png 我试图使用ulimit来限制这个进程可以消耗的内存大约15%的内存,我的512MB的VPS大约是76,800千字节。 如果我使用ulimit运行上面的命令,如下所示,这个过程最初没有限制地占用内存的80%,并且由于延迟导致服务器的其他function无效。 经过一段时间,这个过程降到10%以下(通常是内存的4-8%),但是其他所有服务器的function仍然很慢。 注意我关于进程耗费多less内存的数字来自顶端。 bash -c 'ulimit -m 76800; convert -density 288 ./document.pdf -resize 25% ./pages/page_%03d.png' 有没有人有任何想法,我怎么可以执行这个命令,而不消耗我所有的记忆? 谢谢!