Linux中后台执行scp

最近在一台远程机器上scp一个大文件,需要大半天才能完全down下来,用xshell工具执行完命令之后还不能关闭,否则的话就停止了,我的本本还不能一直放这开xshell。就想到nohup,但是scp命令输入密码是提示的,不能写道命令,经过一番搜索重要找到了一个好办法:

下面是接受不输入密码的scp:

 最近在编写定时自动执行的shell脚步中遇到一个问题。在该脚步中,需要使用scp命令将本地的文件复制到另一台机器中备份。但通常执行scp命令后都需要输入用户密码,这样在定时自动执行的shell脚步中就不适用了。
   
本人的第一直觉就是建立无密码用户,在scp命令中使用该用户就不需要输入用户密码了。
   
以下为了讨论方便,我们将执行scp命令的机器称为Clientscp命令操作的远端机器称为Server
   
首先,我通过以下命令将机器Serverroot的密码删除,即使root变为无密码用户。
        [root@Server root]# passwd -d root
        Removing password for user root.
        passwd: Success
        [root@Server root]#
   
为了确认root已经变为无密码用户,登录试试。
        Red Hat Linux release 8.0 (Psyche)
        Kernel 2.4.18-14 on an i686

        Server login: root
        Last login: Fri Sep 14 16:40:08 on tty1
        [root@Server root]#
   
确实root登录时已经不需要密码了。
   
然后,我们从机器Client复制一个文件到机器Server
        [root@Client root]# scp -p text root@192.168.3.206:/root
        root@192.168.3.206's password:                         <--
直接输入回车
        Permission denied, please try again.                   <--
被拒绝
        root@192.168.3.206's password:                         <--
输入任意字符
        text                 100% |**************************|    19       00:00
        [root@Client root]#
   
从测试结果可知,即使root变为无密码用户,scp命令在执行时也会提示输入密码。更奇怪的是在提示输入密码时,直接输入回车被拒绝了。但输入其它任意字符后输入回车确认就通过认证了。
   
后来在Internet中查找相关资料,有资料[1]介绍在两台机器的两个用户之间建立安全的信任关系后,可实现执行scp命令时不需要输入用户密码。我根据该资料介绍的方法测试成功了。
   
以下是在机器Clientroot和机器Serverroot之间建立安全信任关系的步骤:
    1.
在机器Clientroot用户执行ssh-keygen命令,生成建立安全信任关系的证书。
        [root@Client root]# ssh-keygen -b 1024 -t rsa
        Generating public/private rsa key pair.
        Enter file in which to save the key (/root/.ssh/id_rsa):
        Enter passphrase (empty for no passphrase):            <--
直接输入回车
        Enter same passphrase again:                           <--
直接输入回车
        Your identification has been saved in /root/.ssh/id_rsa.
        Your public key has been saved in /root/.ssh/id_rsa.pub.
        The key fingerprint is:
        49:9c:8a:8f:bc:19:5e:8c:c0:10:d3:15:60:a3:32:1c root@Client
        [root@Client root]#
   
注意:在程序提示输入passphrase时直接输入回车,表示无证书密码。
   
上述命令将生成私钥证书id_rsa和公钥证书id_rsa.pub,存放在用户家目录的.ssh子目录中。
    2.
将公钥证书id_rsa.pub复制到机器Serverroot家目录的.ssh子目录中,同时将文件名更换为authorized_keys
        [root@Client root]# scp -p .ssh/id_rsa.pub root@192.168.3.206:/root/.ssh/authorized_keys
        root@192.168.3.206's password:          <--
输入机器Serverroot用户密码
        id_rsa.pub           100% |**************************|   218       00:00
        [root@Client root]#
   
在执行上述命令时,两台机器的root用户之间还未建立安全信任关系,所以还需要输入机器Serverroot用户密码。
   
经过以上2步,就在机器Clientroot和机器Serverroot之间建立安全信任关系。下面我们看看效果:
        [root@Client root]# scp -p text root@192.168.3.206:/root
        text                 100% |**************************|    19       00:00
        [root@Client root]#
   
成功了!真的不再需要输入密码了。
上面载自
http://www.lslnet.com/linux/dosc1/30/linux-238181.htm.

 最后写了一个简单的shell

[root@usboss bakup]# more aa.sh
scp root@10.130.38.233:/home/channel/exp_boss_20090626.dmp.gz .

然后再后台执行

nohup  bash  aa.sh &

ok 解决问题,ls 几下发现文件一直在增大 关门shell然后再打开,正常的在传输。

第二天来之后,发现偌大的一个文件都down下来了,一切ok!

×××××××××××××××××××××××××××××××××××××××××

今天在网上偶然看到一个不错的建议。先更新一下:

以前在使用nohup comd & 转为后台执行时遇到的最大问题就是scp为提示性命令,不能使用一句命令完成,所以使用让两台机器建立信任,而使其不用输入密码。这样信任机制的建立使步骤复杂了。现在有一种方法可以使在前台运行的命令变为后台,这样原来scp命令继续用提示方式输入,然后在使用前台变后台的方法使其转化为后台,对本文所要解决的问题是一个不错的解决办法。(哈哈 其实任何问题都可以分为若干步骤,这些步骤的解决又可以借鉴其他问题中的步骤,这样就能够提到我们解决问题的能力。ps:想起了《初中生阅读》上的一篇文章中的一句话:我们吃饭不是为了变成米粒,我们喝水不是为了变成水珠。当时读的时间特别有感觉,在这我也使用一下,我们把解决scp后台的执行这个问题记录下来,并形成博客,其实长期目标、根本目的不是为了记住这个问题,而是记住解决这个问题经过了那些步骤,以后在遇到某个步骤的时间,我可以以这个问题为媒介迅速完成,提高解决问题的能力。这才是根本目的。)

利用kill命令转后台执行
先用ps -a找到进程号,再用sudo kill -stop procNumber,将进程暂停。然后再用jobs查看一下要转到后台的进程,找到它的job号,最后用bg jobNumber将其转到后台。大概就像这样:
ps -a
PID  TTY       TIME  CMD
6729 pts/0    00:00:00 mystar

sudo kill -stop 6729

jobs
[2]+  Stopped        sudo mystar

bg 2
之后可以用fg jobNumber把进程调到前台来。

转载于:https://www.cnblogs.com/xd502djj/archive/2009/06/25/1510966.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

质量效能研发部php,【百度】百度质量效能研发部【社招/实习】

职位&#xff1a;百度质量效能研发部【社招/实习】-百度【岗位职责】C研发工程师 / iOS∧orid 开发工程师 / 平台开发工程师 / 算法工程师(智能测试方向) base 上海、北京 本次招录面向各程序栈的优秀同学们&#xff0c;开放社招及实习入口&#xff0c;四类方向供大家选择&…

商业模式新生代_业务分析基础 - 商业模式新生代01篇

商业模式画布商业模式新生代由亚历山大奥斯特瓦德&#xff08;Alexander Osterwalder&#xff09;和伊夫皮尼厄&#xff08;Yves Pigneur&#xff09;编写&#xff0c;发表于2016年。该书提出了商业模式画布模型&#xff0c;既可以用于创业公司&#xff08;Start-ups&#xff0…

yum 安装 sun java,CentOS yum安装sun Java jre jdk和openjdk

在Linux下的tty终端下&#xff0c;安装sun jre&#xff0c;但是去Oracle安装&#xff0c;下载居然还要登录&#xff0c;使用cookie&#xff0c;没办法。直接到http://www.java.com/下载了。说明&#xff1a;如果使用yum install 安装软件&#xff0c;具体的软件名称不知道&…

CodePage简介(转)

CodePage简介(转) 1. Codepage的定义和历史 字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为 单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码. 双字节内码 -- Double-Byte character sets)(DBCS),可…

折半查找和二叉排序树的时间性能_leecode刷题----二分搜索与二叉查找(排序)树...

预备知识&#xff1a;二分查找已知一个排序数组A&#xff0c;如A[-1,2,5,20,90,100,207,800]&#xff0c;另外一个乱序数组B&#xff0c;如B[50,90,3,-1,2-7,80],求B中任意某个元素是否在A中出现&#xff0c;结果存储在数组C中&#xff0c;出现用1代表&#xff0c;未出现用0代表…

php pacs,DICOM医学图像处理:WEB PACS初谈四,PHP DICOM Class – 只要踏出一步,路就在前方——zssure – CSDN博客...

背景&#xff1a;预告了好久的几篇专栏博文一直没有整理好&#xff0c;主要原因是早前希望搭建的WML服务器计划遇到了问题。起初以为参照DCMTK的官方文档wwwapp.txt结合前两天搭建的WAMP服务器可以顺利的实现WML服务&#xff0c;借此就可以同时完成WEB PACS系列以及搭建Dicom W…

COM, COM+ and .NET 的区别

所有的优秀程序员都会尽自己的最大努力去使自己所写的程序具有更好的可重用性&#xff0c;因为它可以让你快速地写出更加健壮和可升级性的程序。   有两种使代码重用的选择&#xff1a;  1&#xff0e;白盒&#xff1a;最简单的一种&#xff0c;就是把你的程序片拷贝到另一…

mfc在运行的时候为什么没有实例化_为什么不建议把数据库部署在Docker容器内?...

本文同步Java知音社区&#xff0c;专注于Java原文&#xff1a;https://www.toutiao.com/i6805798581971190276/近2年Docker非常的火热&#xff0c;各位开发者恨不得把所有的应用、软件都部署在Docker容器中&#xff0c;但是您确定也要把数据库也部署的容器中吗&#xff1f;这个…

php 获取指定时间 次日,PHP时间判断语句

用php只能获取服务器端的时间&#xff0c;得用js获取客户端时间&#xff0c;然后生成对应的css文件内容。为了确保页面能正确显示&#xff0c;还得有个默认的css文件链接。示例代码如下&#xff1a;function DynamicLoad(){var Selfthis; //对象自身//功能&#xff1a;加载指定…

泛型的优势

假设需要一个两个整形变量交换的函数&#xff0c;我们很快就可以嗒嗒嗒嗒的敲出下面的 Swap 函数&#xff1a;void Swap(ref int lhs, ref int rhs){int temp lhs;lhs rhs;rhs temp;}随着项目进展&#xff0c;我们发现&#xff0c;需要用到 Swap 函数的不仅是整形,变量 还有…

老男孩python全栈开发视频教程_老男孩Python全栈开发(92天全)视频教程 自学笔记08...

day8课程内容&#xff1a;文件操作fopen(小重山,r,encodingutf8)     #以读的方式打开文件dataf.read()print(data)f.close() #关闭文件句柄fopen(小重山2,w,encodingutf8)    #以清空再写 的方式打开文件&#xff0c;这一步就将文件以前的内容清空了&#xff0c;如果…

php echo 后必须die,die 提示的消息都去哪了?

小弟新手&#xff1a;$fpfopen("./readme.txt","r") or die("不能打开该文件");想问下&#xff0c;如果打开失败&#xff0c;那么die 的这条消息输出到哪了啊&#xff1f;貌似打开失败界面也没有直接弹出这条消息&#xff1f;请问使用die这条消息…

BSTR、char* 和 CString 之间的转换 (转)

BSTR、char* 和 CString 之间的转换 (1) char*转换成CString 若将char*转换成CString&#xff0c;除了直接赋值外&#xff0c;还可使用CString::Format进行。例如&#xff1a; char chArray[] "This is a test"; char * p "This is a test"; 或 LPSTR …

python打开音频文件_Python处理音频文件的实用姿势

每天叫醒我的不是理想&#xff0c;是楼下广场舞的音乐。音乐是人类的通用语言&#xff0c;不分国界不分种族。抖音短视频爆火的关键因素之一&#xff0c;就是普通人也能便捷地使用BGM表达自我。从感性角度看&#xff0c;音乐可以有很多种解释&#xff0c;如&#xff1a;音乐是有…

java三路快排,java二路快排很慢

老师&#xff0c;以下是我二路快排的java代码public class quickSortTwoway {public quickSortTwoway() {};public static void quickSort(Integer[] arr) {__quickSort(arr, 0, arr.length - 1);}private static void __quickSort(Integer[] arr, int l, int r) {if(l > r)…

Web开发常出现的错误[个人收集]

获取DataGrid中的每行中的第一行的第一个textbox (有点老&#xff0c;但用的到) publicabstractclassHelper { publicclassConvert { publicstaticTextBox ToTextBox(Control control) { TextBox tb control asTextBox; …

系统分析师资料_如何成为一名数据分析师?

随着大数据的逐渐普及&#xff0c;数据分析越来越普遍应用到各个职能岗位&#xff0c;也就是说&#xff0c;不论你在哪个行业&#xff0c;都会需要数据分析技能。数据岗位的薪资水涨船高&#xff0c;成为目前最有潜力的职业选择之一。根据猎聘发布《猎聘2019年中国AI&大数据…

matlab中ode45如何设置,如何使用Matlab中的ode45修正赋值错误(ode45函数的第488行)

我正在写一个脚本ode45为了整合卫星在火星附近双曲线轨道上的运动方程.我需要整合地球上的整个通道:从SOI半径开始(576000km)向行星前进,然后穿过大气层直到卫星到达opposite“大气边界(设置在250km从表面)。当它接收到输入A时tspan比大约高200000秒(我需要大约400000秒),Matla…

PL/SQL Developer 使用技巧小结(转)

1&#xff0c;右键菜单在PL/SQL Developer&#xff08;下面简称PLD&#xff09;中的每一个文本编辑窗口&#xff0c;如SQL Window&#xff0c;Command Window和Porgram Window&#xff0c;右键点击某个对象名称&#xff0c;会弹出一个包含操作对象命令的菜单&#xff0c;我们这…

设置文本区域大小_数据验证基本设置技巧

数据验证可以规范用户的文本及数字输入格式&#xff0c;如只能输入指定区间的数值、只能输入文本数据、限制输入空格、限制输入重复值等。设置了数据验证条件后&#xff0c;对符合条件的数据允许输入&#xff0c;对不符合条件的数据则禁止输入。因此&#xff0c;利用此设置可以…