我需要一种方法来以用户身份login到主机名/ IP列表,然后创build/追加root的.bashrc 根没有权限直接SSH到服务器
我有以下脚本(在解释和问题的最后)。 有两个function。 在第一个函数中,调用firefox -print扩展。 一切顺利,如果我逐行运行它。 问题是,在一个bash脚本中,firefox会在几秒钟内被调用很多次,而不是一次调用一次,等待完成。 我不想在function上增加睡眠,因为我不知道需要多长时间。 有什么办法强制bash不启动线程? (我想这是做的) 谢谢。 这是我的脚本(因为命令let是bash而不是sh) #!/bin/bash ####TODO### ####variables # join files # send with attachment ## Date, to be used as reference on tmp files DATE=`date +%Y%m%d` ## File where all webs to report are listed WEBSFILE="/home/marc.riera/Desktop/reports/websfile.txt" ## Where to store all the files. WORKDIR="/home/marc.riera/Desktop/reports" ##################do not edit under […]
我有一个脚本,将做大量的准备工作(生成configuration文件,最小化和GZIP JavaScript和CSS文件等),然后重新启动安装在非标准位置的Apache。 但脚本运行后,当我试图exit我的SSH会话时,它只是无限期地挂起。 我已经阅读了build议 ,我应该redirectIO的实际调用到这样的httpd二进制文件: sudo /path/to/httpd -f /path/to/config < /dev/null >& /dev/null 这个工程和脚本完成后,我的SSH会话不再挂起。 但问题是,现在我已经失去了任何出错STANDR,如果出现错误,当它开始。 这对我来说似乎很奇怪,因为我有另一个系统有一个类似的(但不是确切的)设置,不会挂起。 从阅读推荐这个解决方法的build议,它说,守护进程(如Apache)应该已经在照顾这一点。 那么我错过了什么? 任何关于如何跟踪这个问题的指针或者我如何解决这个问题?
当我用-c开关传递时,bash拒绝给我'bind -p'的输出: bash -c 'bind -p' 但它可以input bind -p 直接在bash提示符下,它可以input类似的东西 bash -c 'echo "hi"' 和zsh高兴地做了什么bash拒绝做(嗯,等效命令在zsh中): zsh -c 'bindkey -L' 究竟是怎么回事?
我可以用freebsd上的pw adduser自动创build密码的用户吗? pw useradd [name] [switches] -V etcdir alternate /etc location -C config configuration file -q quiet operation Adding users: -n name login name -u uid user id -c comment user name/comment -d directory home directory -e date account expiry date -p date password expiry date -g grp initial group -G grp1,grp2 additional groups -m […]
我有几个基于Python的服务器,我需要运行,并希望他们启动我的Ubuntu服务器框时自动启动。 执行它们的最好方法是什么? 我希望我可以写一个Bash脚本,并使用Screen来让它们在后台运行,我可以随时查看它们,但是在哪里 echo screen -d -m python 工作得很好, echo screen -d -m `sudo python /home/matt/tornadoServer/tornadoDeploy.py` 不,没有错误信息。 这与空间有关吗? 即使我用反引号包围了它? 我也试过: WEB="screen -d -m `sudo python /home/matt/tornadoServer/tornadoDeploy.py`" echo $WEB 作为逃避空间的一种方式,但没有运气。 什么是Bash脚本的方式来做到这一点? 而且,一旦Bash脚本工作,我可以把它放在启动时执行?
有很多教程可以直接使用SSH密钥副本,但不会检查密钥是否已经远程存在。 这应该工作: cat ~/.ssh/id_rsa.pub | ssh -p <port> <user>@<hostname> 'sh -c "if ( ! grep -q '`cat -`' ~/.ssh/authorized_keys); then cat – >>~/.ssh/authorized_keys; fi"' 在grep里面的cat -不会被内插到一个单一的string中,而是3,并且抛出所有的东西。 我在Ruby中做了这个工作,但它并不理想。 任何bash赞成周围? Net::SSH.start(<host>, <username>, :password => <password>, :port => <port>) do |ssh| local_public_key = `cat ~/.ssh/id_rsa.pub`.chomp ssh.exec! %{ if ( ! grep -q '#{local_public_key}' ~/.ssh/authorized_keys ); then echo '#{local_public_key}' […]
我正在使用备份 for a in /home/* do //do backup done 我想排除/ home中的一些文件夹。 但循环采取所有文件夹我在那里。 有什么办法,以便我可以在顶部指定排除列表,可以在循环中使用
[root@ ]# logout There are stopped jobs. [root@ ]# 所以我需要logout两次才能注销。 什么时候会发生?
我试图在SVN上设置一个post-commit钩子来使用bash脚本向一群用户发送邮件。 我已经成功地设置了钩子,并且只有一个邮件地址被指定时才起作用。 但是,当更多的电子邮件地址添加没有邮件到达。 bash脚本如下: 提交后: #!/bin/sh REPOS="$1" REV="$2" SENDTO="[email protected], [email protected]" # Send it to these people, calling the script we created above /home/www/svn/bin/svn_email_commit.sh "$REPOS" "$REV" "$SENDTO" svn_email_commit.sh: #!/bin/bash REPOS=$1 REV=$2 SENDTO=$3 [email protected] LIMITDIFF=200 # Do various other stuff and dump mail body to a temp file $TMPFILE… # Send email /bin/cat $TMPFILE | /bin/mail -s […]