有人知道一种方法发送一个命令的标准输出到另一个命令,并将其显示在shell屏幕中吗? 注意:不使用文件。 一个例子(在这种情况下,我使用wc -l来简化) ~> echo "test" | wc -l 1 但我需要有 test 1 我已经尝试了T恤的命令,期待它会这样做,但它返回相同的东西 ~> echo "test" | tee | wc -l 1 有任何想法吗? 谢谢
我想将收到的networking数据和数据发送信息存储在一个variables或文件中。 使用下面的命令我可以grep它并在屏幕上打印行。 但我无法将信息存储在bashvariables中。 top -l 0 -n 1 -cd | grep -e '^Networks:' 有没有更好的方法? (在Mac OS X上)
我使用以下命令安装Ruby的RVM: curl -L https://get.rvm.io | sudo su myuser -c "bash -s stable –rails" curl -L https://get.rvm.io | sudo su myuser -c "bash -s stable –rails" 我特别需要将它安装在该用户下 – 并且它将工作,但是它需要用户通过按“q”来继续,一旦它碰到脚本中的某个点。 我如何设置脚本继续而不必按'q'继续?
我有2个文件与我有像这样的内容: 文件1: a b c e g s 和file2 s a b c 我想比较文件的内容,哪些字母不存在于其他文件中,哪些存在于其他文件中。 问题是文件的大小是不同的。 如果它是相同的,那么它不会是一个问题,简单的DIFF会给我比较。 如果我比较file1和文件2,我需要得到这样的差异,以下不存在于文件2: e g
我想在iptables中阻止除我之外的所有国家,这是一个包含大约100.000个条目的列表。 我怎样才能在脚本中定义这个黑名单文件,所以iptables阻止所有这些IP范围? 也许我可以使用: http : //www.ipdeny.com/ipblocks/data/countries/ ,它提供了表单中的列表 117.55.192.0/20 117.104.224.0/21 119.59.80.0/21 121.100.48.0/21 … 我希望能够轻松地更改黑名单文件,而无需更改iptables脚本。
我有一个脚本启动一个守护进程,然后睡20秒。 如果我在SLES11 SP1或RHEL6上运行脚本,那么在脚本退出后,进程仍在运行。 如果我在SLES11 SP3或RHEL6.3上运行该脚本,那么脚本退出后,该进程不再运行。 整个20秒的睡眠过程继续运行,并在进程退出时死亡。 该脚本是通过expect运行的,所以脚本的整个shell会随着进程而退出。 显然,如果这不是一个守护进程,它开始我不会感到惊讶。 另外,我怀疑问题不是操作系统版本,而是我们设置新服务器的方式不同(不知道这些差异是什么,而旧服务器是在几年前build立的)。 在20秒的过程中运行,如果我做一个ps我得到以下内容: root 4699 1 0 15:14 pts/2 00:00:00 sudo -u openmq /opt/PacketPortal/openmq/default/bin/imqbrokerd -bgnd -autorestart -silent -port 7676 -Dimq.service.activelist=admin,ssljms -D openmq 4701 4699 0 15:14 pts/2 00:00:00 /bin/sh /opt/PacketPortal/openmq/default/bin/imqbrokerd -bgnd -autorestart -silent -port 7676 -Dimq.service.activelist=admin,ssljms -Dimq.ssl openmq 9095 9063 54 16:21 pts/2 00:00:02 /usr/java/latest/bin/java -cp /opt/PacketPortal/openmq/default/bin/../lib/imqbroker.jar:/opt/PacketPortal/openmq/default/bin/../lib/imqutil.jar:/opt/PacketPortal/ope 4699的父进程是1的事实似乎暗示了这个进程已被正确地守护进程。 […]
我正在托pipe我自己的Web服务器,并希望定期对我的文件进行备份。 所以我决定写一个bash脚本。 但是,我坚持这个: #!/bin/bash # /etc/init.d/backup # version 0.3.9 2012-08-13 (YYYY-MM-DD) backup(){ NOW=`date "+%Y-%m-%d_%Hh%M"` tar -czvf Backup${NOW}.tar.gz /var/www/ mv Backup${NOW}.tar.gz /home/user/backup/ } exit 0 我想知道我将如何运行它,如何在特定的时间使它每天运行。 任何帮助?
我正在运行远程bash脚本(使用ssh -t'bash doscript.sh')。 在“doscript.sh”我有一个sudo su anotheruser。 在这一点上,脚本似乎推壳,我留在那个“交互式”的脚本和我的脚本(doscript.sh)的其余部分不会运行,除非我input“退出”。 有没有解决这个问题的解决方法? 提前致谢。 这里是我的testing脚本“doscript.sh”的内容: sudo su diy cd pwd whoami exit whoami
我创build了一个脚本来检查我的glassfish服务器是否正在运行,如果不是,它会尝试终止java进程以确保它没有挂起,然后发出asadmin start-domain命令 如果此脚本从命令行运行,则100%成功。 从cron选项卡运行时,每行都会运行,但是asadmin start-domain行似乎没有执行,或者至less没有完成,即服务器在此脚本运行后未运行。 对于不熟悉glassfish的人或者用于启动服务器的asadmin实用程序,我的理解是使用分叉进程。 这可以通过cron导致一个问题? 同样,在今天的所有testing中,脚本从命令行运行完成。 一旦它通过cron执行,它不会完成。 在此先感谢任何帮助…我拉我的头发试图使这项工作! #!/bin/bash timevar=`date +%d-%m-%Y_%H.%M.%S` process_name='java' get_contents=`cat urls.txt` for i in $get_contents do echo checking $i statuscode=$(curl –connect-timeout 10 –write-out %{http_code} –silent –output /dev/null $i) case $statuscode in 200) echo "$timevar $i $statuscode okay" >> /usr/home/user1/logfile.txt ;; *) echo "$timevar $i $statuscode bad" >> /usr/home/user1/logfile.txt echo "Status […]
我有一个Apache Web服务器与各种虚拟主机。 每个虚拟主机使用cronologloggingdate标记的文件。 结果是,我得到了很多这样的文件: —-rw-r– 1 root root 467894 2013-02-01 13:43 2013-02-01-tracg.dev.local-access.log —-rw-r– 1 root root 222 2013-02-01 01:09 2013-02-01-tracg.dev.local-error.log —-rw-r– 1 root root 222 2013-02-02 01:10 2013-02-02-tracg.dev.local-error.log —-rw-r– 1 root root 333 2013-02-03 06:47 2013-02-03-tracg.dev.local-error.log -rw-r–r– 1 root root 39574 2013-02-04 14:20 2013-02-04-tracg.dev.local-access.log —-rw-r– 1 root root 444 2013-02-04 08:24 2013-02-04-tracg.dev.local-error.log —-rw-r– 1 root […]