我想logging所有通过SSH执行的命令。 说, ssh [email protected] COMMAND 我想在server.com上login“COMMAND” 我做了广泛的search,但找不到任何东西。 还有一个类似的问题,但我不认为那里有一个解决scheme。 如何logging“通过SSH远程执行” 我可以得到一个实时的看法 pstree -p | grep ssh 我尝试过使用史努比,审计和sudosh,但不能通过SSHlogging这些命令。 有一个http://freecode.com/projects/shwatchr 。 但我无法下载脚本来testing。 有没有其他办法可以做到这一点? 谢谢………
我有一些以#!/usr/bin/env php开头的PHP脚本。 默认的解释器是PHP 4.4,但脚本需要PHP 5.3,所以我在~/.bashrc创build了一个别名: alias php="/usr/local/bin/php5-53LATEST-CLI" 因此,调用php -v显示我5.3但是#!/usr/bin/env php仍然使用4.4。 我不会改变脚本。 那么我怎么能用#!/usr/bin/env php来获取PHP 5.3呢?
我正在创build一个连接到服务器的脚本,并将输出转储到一个临时文件。 我想在脚本中使用sed来从临时文件中获取特定的信息。 输出将始终具有80个字符的虚线,然后是我想要的信息,然后是Disconnected语句。 我得到了一个正则expression式的工作,如果它只是一个单一的线,麻烦是我怎么分组换线? 正则expression式 -\{80\}[\r\n]*\(.*\)[\r\n]\{4\}Disconnected 文件 … ——————————————————————————– The information that I want to get can be a single line or multiple lines. Another line to grab. And this should be caught as well. Disconnected … 期望的输出 The information that I want to get can be a single line or multiple lines. Another line […]
我需要远程定期检查Linux文件系统是否安装在只读服务器上。 在这种情况下,我唯一可以使用的工具是通常的CLI脚本语言(BASH / Perl / Python),SSH和SNMP。 我到目前为止的想法是: 共享SSH密钥并远程执行mount命令,grep / awk-ing给定挂载点上的RO标志。 通过SNMP检查,但我不确定这些信息是否可用或是多么容易。 尝试通过SCP文件或远程触摸文件。 SNMP方法是我能想到的最好的/最干净的,但是我不知道如何做到这一点,因为CLI SNMP看起来像一场噩梦,特别是如果我需要运行一个决策过程来find基于给定安装点。 理想情况下,我只想使用BASH(包括sed / awk / grep等)和SNMP,但需要一些指导从哪里开始! snmpd已经在所有服务器上安装并configuration了v2。 这个脚本的最终用途将是一个Nagios命令。 非常感谢您的帮助! 注意我们已经有cacti / nagios设置了监控服务器的数量,当我最初发布的时候我忘了提及这个!
总结:为什么这会失败 $ ssh foo 'R –version | head -n 1' bash: R: command not found 但是这个成功了 $ ssh foo 'grep -nHe 'bashrc' ~/.bash_profile' /home/me/.bash_profile:3:# source the users .bashrc if it exists /home/me/.bash_profile:4:if [ -f "${HOME}/.bashrc" ] ; then /home/me/.bash_profile:5: source "${HOME}/.bashrc" $ ssh foo 'grep -nHe "\WR\W" ~/.bashrc' /home/me/.bashrc:118:alias R='/share/linux86_64/bin/R' $ ssh foo '/share/linux86_64/bin/R –version […]
我一直无法find描述这个特定场景的问题。 我正在尝试执行一个非常基本的bash脚本来从多台机器检索日志logging。 我在本地运行脚本,但需要通过ssh访问外部机器,以及在该机器上sudo进入特权用户。 ssh [email protected] sudo su – privledged_user cat logs > file.txt 用sh -x来运行这个例子显示bash被卡在'ssh'行。 所以我试着修改它: ssh [email protected] sudo su – privledged_user cat logs > file.txt 这似乎也无限期地拖延下去。 有没有更好的解决这个问题? 我没有看到使用sudo su从我可以告诉… 谢谢你的帮助!
我想configurationbash页面的所有命令的输出。 基本上,我希望bash的行为就像我input的每个命令都以'|结束 减'。 这可能吗?
使用rsync,如何在使用–files-from参数进行复制时重命名文件? 我有大约190,000个文件,每个文件需要从源文件复制到目的地时重命名。 我打算将文本文件的列表传递给–files-from参数。
我有一个由第三方软件生成的文本文件,作为构build过程的一部分。 我想replace一个特定的行 – 在我的情况下,第6行。我怎么能在我的bash脚本中做到这一点? 我怀疑sed是我的朋友,但我现在很难过。 如果这很重要,我正在使用Mac OS X 10.6。
我有一个脚本,写在bash中,从cron运行。 它所做的第一件事情之一是SSH到远程主机,并检索目录中的文件列表。 从命令行运行时一切正常,但不是从cron运行。 脚本部分最初看起来像这样: FILES=$($SSH_BINARY -i $SSH_KEY $SSH_USER@$REMOTE_HOST "ls $REMOTE_DIRECTORY") echo "Got files = $FILES" 我在该行上面添加了一个echo语句(如下所示)来certificate它不是path或variables问题: echo "$SSH_BINARY -i $SSH_KEY $SSH_USER@$REMOTE_HOST \"ls $REMOTE_DIRECTORY\"" 如果我把结果输出行并作为相同的用户cron将(根)运行,它没有问题。 认为它可能与分配给variables有关,我修改了FILES =行来读取(因此,把输出直接放到我的last_run_output文件中): $SSH_BINARY -vv -i $SSH_KEY $SSH_USER@$REMOTE_HOST "ls $REMOTE_DIRECTORY" cron条目如下所示: 34 * * * * /root/path/to/my/script/get_logs.sh > /root/path/to/last_run_output 2>&1 所以,除了PATH,variables赋值和权限问题之外,我开始在ssh中使用debugging标志。 我从命令行运行一次,然后从cron运行,并比较输出。 以下是差异中的一些亮点: 侧面是不成功的尝试,+侧面是成功的尝试,在cron之外运行。 @@ -87,9 +77,7 @@ debug1: Remote: X11 forwarding […]