- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在远程服务器上使用 bash 脚本(如下)(到目前为止使用 ssh 连接)来执行一个 python 脚本,该脚本一次下载大量 pdf 文件(从文本文件中获取下载位置) URL 的)循环。
我想在下载文件时将文件从远程服务器移动到本地计算机,然后从远程服务器删除该文件。有没有办法可以扩展我的 bash 脚本来执行此操作?或者有其他方法可以完成此任务吗?
while read line; do python python_script.py -l $line; done < pdfURLs.txt
最佳答案
[编辑以反射(reflect)原始发布者无法从服务器 scp 到他的本地计算机的事实;我假设它位于 NAT 或类似的东西后面]
[编辑2:我保留当前基于隧道的答案,以供引用;但是,由于原始发布者无法 ssh 返回到他的本地计算机,我假设有其他东西阻塞了隧道。请参阅最后的建议]。
好的,您需要在服务器和家庭计算机之间打开一条隧道。因此,使用以下命令从本地计算机(我假设它是基于 Unix 的,你提到的是 Mac,所以这很好)ssh 到服务器:
ssh -R 10022:localhost:22 your_server_address
简而言之,这会将服务器的端口 10022(这是一个高 (> 1024) 端口,因此可能可用)转发到本地计算机的端口 22(这是 ssh 通常监听的端口)。也就是说,完成此操作后,如果您通过 ssh 进入服务器的 10022 端口,那么您实际上是通过 ssh 进入本地计算机。如果您想从服务器测试它,请执行以下操作:
ssh -p 10022 localhost
使用本地计算机的用户名和密码登录,您应该会看到其 shell 提示符。如果你做这个测试,记得退出,以免自己迷惑。
打开隧道后,请保持该连接打开。您可以使用它来运行下载 PDF 等的 bash 命令行,但这不是必需的。
然后,尝试以下命令行:
while read line; do python python_script.py -l "$line"; scp -P 10022 *.pdf localhost:path/to/put/files/; rm *.pdf; done < pdfURLs.txt
需要记住的一些事情:
应该可以了。
[编辑添加此替代方案,用于隧道不起作用时]
如果失败,我只能假设有其他东西阻止了您的 ssh/scp 从服务器到本地计算机。在这种情况下,您可以尝试不同的方法:在您的本地计算机上执行以下操作
while read line; do ssh -n server_address "cd tmp_download_directory && rm -f *.pdf && python python_script.py -l $line" && scp server_address:tmp_download_directory/*.pdf /local/path/to/put/files/; done < pdfURLs.txt; ssh server_address "rm -f tmp_download_directory/*.pdf"
(ssh 的“-n”开关是必要的,不是为了将后续的 $ 行输入 ssh shell。)
关于python - 如何在文件添加到远程服务器时获取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3063235/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!