我在脚本中运行此命令
while [ 1 ]
do
if [ -e $LOG ]
then
grep -A 5 -B 5 -f $PATTERNS $LOG >> $FOREMAIL
break
fi
done
Run Code Online (Sandbox Code Playgroud)
$ LOG文件是从另一台机器scp的.因此,只要它出现在当前目录中,while循环就会检测到它并执行grep.问题是,$ FOREMAIL文件变为空.但是如果我在脚本之外运行这个grep作为具有相同文件和参数的独立命令,我可以看到它生成一个输出.
我很困惑为什么这个命令在脚本中没有产生o / p?
我知道我想做什么,但我无法弄明白.
我想ssh到远程Web服务器,执行命令来转储数据库,然后关闭该数据库.
更复杂的是,我这样做是为了一个网格服务器,所以ip地址并不总是一样的.
我脑子里有以下想法,但需要调整才能让它起作用:
!/bin/bash
ssh root@server.com
mysqldump -uroot -pxxxxx mydb > mydb.sql
mv mydb.sql /var/www/site/httpdocs/public_folder
wget www.site.com/mydb.sql
Run Code Online (Sandbox Code Playgroud)
任何想法如何使这项工作?或者也许有一种方法(在同一个脚本中)我可以将其scp下来?
由于某种原因,我必须使用"setsid"来运行我的所有命令.
但是,当运行"setsid scp~/aaa user1@10.170.3.17:/ tmp /"时,会出现一个请求密码的对话框.通常,提示出现在命令行中.
它是由ssh中的某些配置引起的吗?我想要消除这个盒子.怎么实现呢?
我已经在Heroku上部署了一个工作人员,他定期将文件上传到ssh服务器.它是在Node.js上写的,它确实:
require('child_process').exec('scp -i id_rsa myfile.txt myuser@myserver.com:updated.txt', function() { ... });
Run Code Online (Sandbox Code Playgroud)
为了连接到服务器,存储库有一个*id_rsa*文件,其私钥不是myserver.com授权的私钥.我已经在两台计算机上进行了测试(没有与myserver.com进行密钥交换)并且它可以工作,但是当我将它上传到Heroku时,scp输出:
Host key verification failed.
Run Code Online (Sandbox Code Playgroud)
为什么?
我也试过而不是执行scp:
cat file.txt | ssh [myuser]@[myserver] "cat > updated.txt"
Run Code Online (Sandbox Code Playgroud)
一样的问题.
执行ssh -v ...输出:
[...]
debug1: read_passphrase: can't open /dev/tty: No such device or address
Host key verification failed.
[...]
Run Code Online (Sandbox Code Playgroud)
我无法访问Heroku上的tty?
这是repo上的所有文件:
require('child_process').exec('scp -i id_rsa file.txt [myuser]@[myserver]:updated.txt', function(error, stdout, stderr) {
if (error)
console.error('FAILED', stderr.toString());
console.log('OUTPUT', stdout.toString());
});
Run Code Online (Sandbox Code Playgroud)
-----BEGIN RSA PRIVATE KEY-----
[censored] …Run Code Online (Sandbox Code Playgroud) 是否可以使用"scp"命令来了解如何在Windows环境下将文件从服务器传输到服务器?我使用远程桌面连接到Windows 8服务器.现在我将连接到Linux服务器,但Windows环境不支持sftp只有ftp.我想用scp.
现在这是我的问题.我不知道我的标签是否正确.如我错了请纠正我.请指导我.我只是服务器的新手.有一个应用程序将文件传输到Windows服务器,我打算将其从Windows服务器传输到Linux服务器.
我尝试遵循/sf/answers/1269534381/提供的建议,但不确定如何在远程服务器上的 .pem 文件中共享 myAmazonKeypair 路径。
scp -i yourAmazonKeypairPath.pem fileNameThatYouWantToTransfer.php ec2-user@ec2-00-000-000-15.us-west-2.compute.amazonaws.com:
Run Code Online (Sandbox Code Playgroud)
该命令在几分钟后完成并显示以下内容:
ssh: connect to host
myBucketEndpointName
port 22: Connection timed out
lost connection
我有几个非常大的文件需要传输,并且不希望将这些文件下载到我的本地计算机,然后将它们重新上传到 S3 存储桶。
有什么建议么?
我正在尝试使用命令行执行这个 shell
host="192.168.X.XXX"
user="USERNAME"
pass="MYPASS"
sshpass -p "$pass" scp -o StrictHostKeyChecking=no /home/MYPATH/File.import "$user@$host:/"home/MYPATH/
Run Code Online (Sandbox Code Playgroud)
将文件从本地服务器复制到远程服务器。远程服务器是远程服务器的副本,但是当我尝试执行此 shell 时,出现以下错误:
**PERMISSION DENIED, PLEASE TRY AGAIN**
Run Code Online (Sandbox Code Playgroud)
我不明白为什么如果我尝试在命令行中执行此命令有效。
USERNAME@MYSERVER:~$ sshpass -p 'MYPASS' scp -o StrictHostKeyChecking=no /home/MYPATH/File.import USERNAME@192.168.X.XXX:/home/MYPATH/
Run Code Online (Sandbox Code Playgroud)
有人有解决办法吗??
我正在尝试使用 scp(安全复制)将文件夹从一个系统复制到另一个系统,但是我无法弄清楚如何指定端口。
我明白,对于scp,我可以...
scp /file/location/folderName user@192.***.*.***:/destination/location/
Run Code Online (Sandbox Code Playgroud)
但是我更改了目标系统的 SSH 端口,因此出现此错误...
ssh:连接到主机。.*.*** 端口 22:连接被拒绝丢失连接
我可以使用某种 -p 命令来指定端口号吗?
我也尝试像这样添加端口......
scp /file/location/folderName user@192.***.*.***:>>portNumHere<</destination/location/
Run Code Online (Sandbox Code Playgroud)
更新了解决方案...
我不仅在使用错误的 -P 上遇到困难,而且在放置位置上也遇到困难。我知道理解这对我有用......
scp -r -P >>portNumHere<< /file/location/folderName user@192.***.*.***:/destination/location/
Run Code Online (Sandbox Code Playgroud)