我想创建一个脚本,自动登录到远程服务器,并抓取服务器上的一个文件。该脚本已经登录到服务器,但是命令并未在该计算机上运行。一旦我断开与远程服务器的连接,这些命令就会在客户机上运行。
!/bin/sh
ssh -o PreferredAuthentications=publickey brjones@server.com
cd ~/folder
"i would like to grab file and copy it to client machines folder"
编辑:我不确定您是否注意到了,但是我使用ssh和密钥生成来无密码地连接到远程服务器。我很欣赏这些想法,但我正
嗨,我现在使用的是tmux,现在有些东西困扰着我。
我记得当Ctrl + B C打开一个新窗口时,这个窗口将保持原始窗口的状态,这意味着如果我ssh登录到远程服务器,然后我调用Ctrl + B C,新窗口也将ssh登录到远程服务器,因为它们是在同一个会话中或者什么的。
但是现在它是这样工作的,新窗口在我自己的主机上,并且有$HOME的pwd,就像在iTerm中打开一个新的选项卡一样,为什么?
当登录到我的远程服务器时,它需要一个用户输入,它的bash_profile是这样修改的。
[nikhil]$ cat .bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
read -p "enter your name " Name
echo $Name
如何使用ssh登录到此远程服务器并通过脚本传递该输入。
我设置了一个公钥/私钥对,这样就可以ssh到远程服务器,而不必登录。我正在尝试编写一个shell脚本,该脚本将列出远程服务器上特定目录中的所有文件夹。我的问题是:如何指定远程位置?下面是我得到的信息:
#!/bin/bash
for file in myname@example.com:dir/*
do
if [ -d "$file" ]
then
echo $file;
fi
done
我必须通过ssh登录到远程服务器,然后转到tmp文件夹,在那里我必须运行rm命令。但是,当我执行下面的脚本时,它会转到远程服务器,但不要转到临时文件夹,也不要运行rm命令。
#!/bin/bash
for i in `cat list`
echo $server
echo "------------------------------------------"
ssh $server << MYCOMMANDS
cd /tmp
rm log52.log
MYCOMMANDS