所以,我参加了一些编程课程(面向对象的,网络),但从未有过"动手"项目,而不是编码.
现在我想弄清楚这些SSH的内容是什么,我甚至无法弄清楚要使用哪个客户端,所以现在选择filezilla.
我的问题是,我在哪里可以阅读更多关于这些术语的信息,比如端口和诸如此类的东西,所以我没有漫无目的地学习.
谢谢!
我需要具有基本上模拟用户使用ssh创建端口转发的功能.所以,本质上应该像如下: -执行ssh -f -N -L 10000:gateway:11000 localhost
-如果有来自该命令的输出,显示给用户,用户泵作为一个响应输入-完成我想出了下面的代码,几乎做什么,我需要:
ssh_proc = Popen(['ssh', '-f', '-N', '-L', '10000:gateway:11000', 'localhost'], stdin=PIPE, stdout=PIPE)
stdoutdata, stderrdata = ssh_proc.communicate()
Run Code Online (Sandbox Code Playgroud)
但问题是它永远不会完成.我看到命令已执行并且已创建转发隧道,但仍然卡住了().我可以用Ctrl + C打破这个并得到这个:
^CTraceback (most recent call last):
File "sshman.py", line 278, in <module>
add(args.remote_host, args.remote_port, args.local_port, args.local_host)
File "sshman.py", line 125, in add
stdoutdata, stderrdata = ssh_proc.communicate()
File "/usr/lib64/python2.7/subprocess.py", line 740, in communicate
return self._communicate(input)
File "/usr/lib64/python2.7/subprocess.py", line 1256, in _communicate
stdout, stderr = self._communicate_with_poll(input)
File "/usr/lib64/python2.7/subprocess.py", line 1310, in _communicate_with_poll
ready = poller.poll()
KeyboardInterrupt
Run Code Online (Sandbox Code Playgroud)
由于我使用-f和ssh命令,它应该分叉连接.有没有办法在完成后中断communication()或是否有更优雅的解决方案? …
我需要使用SSH从Windows框远程发送命令到其他服务器.是否有源我可以用来构建SSH到应用程序,所以我不必使用cygwin或类似的东西?谢谢!
我想要做的是连接到我的服务器并让Drush(Drupal命令行程序)运行命令来启动大数据导入.为此,我需要首先SSH到服务器.所以我会执行Drush调用.然后我希望能够关闭我的电脑并走开.
如果我这样做会继续运行吗?有人向我建议我可以在命令的末尾添加一个&符号,它会将命令放在后台.那会有用吗?
我之所以要求而不仅仅是测试是因为这将是一个大量的数据,我不想在我完全准备好将它放在服务器上之前启动它.
思考?
我对bash和其他一些人都很陌生,而且我已经在网上找了很多解决方案来做我需要的东西,但我正在寻找最佳方式.
有些人使用sed,有些人使用find.
我试图找到并替换目录中的所有文件(递归).
关于如何做或在哪里看的任何建议?
编辑
我知道,现在,这并不直接与SSH有关,但它是我寻找答案的地方,我觉得其他人也可能在同一个地方看.
我希望能够上传到我的远程服务器只更新新文件.我正在使用nanoblogger,它似乎每次都使用普通的scp -r上传整个东西,但我找不到手册页中提到的scp的任何-u选项.
我想我可以尝试以某种方式用ls编写上传脚本,或者发现只抓取最近$ n分钟内更新的文件,或者其他东西,但这似乎很重要.
客户端使用用户名firstname.lastname@email.com(我的电子邮件地址)向我提供了对其Web服务器的SSH访问.
我试过了:
ssh firstname.lastname@email.com@555.555.555.555
ssh firstname.lastname+email.com@555.555.555.555
Run Code Online (Sandbox Code Playgroud)
和其他几个组合,但没有运气.
我对服务器环境一无所知,除了它有点Linux的味道.
在我回到他们说它不起作用之前,也许我错过了什么?
在下面的代码,我需要打印从变量输出$stout,$stderr.我怎么能这样做,而不是没有使用$ssh = Net::SSH::Perl->new?
#!/usr/bin/perl
use strict;
use warnings;
use Net::SSH::Perl;
use FindBin qw($RealBin);
use File::Basename;
use lib "/nfs/site/proj/dpg/tools/lib/perl";
use Util;
use Getopt::Std;
use Net::SSH::Perl;
use Cwd;
use File::Copy;
my $host = 'someip.com.com';
my $pass = '';
my $user = '';
my $cmd = 'pwd';
my($stdout,$stderr,$exit) = system('ssh someip.com cat /nfs/site/home/aa/test11.txt') ;
if ($stdout) {
print "Standard output is \n$stdout";
} elsif($stderr) {
print "Standard error is \n$stderr";
}
Run Code Online (Sandbox Code Playgroud) 我知道我想做什么,但我无法弄明白.
我想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下来?
当我没有命令ssh到一个盒子时,它给了我一个交互式shell.如果我明确地说要运行bash,它就无法以交互方式工作.我必须发送一个中断停止.如果我想运行像mysql这样的交互式程序,我可以不先启动交互式shell吗?