前言
为了某个比赛写了个Java的C/S架构的类早期QQ的聊天软件。
两个Jar包,为了在线上运行,买了一个月的aliyun(linux)
然后学习了一下如何在两台linux之间传文件,主要有sftp和scp两个命令。
##sftp
sftp 是一个基于ssh的交互式文件传输程式。它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性。
sftp 使用方法:
1 | sftp [remote_username@]remote_ip[:file ...] |
举例说明:
1 | $ sftp root@xxx.xxx.xxx.xxx |
当然也有GUI的工具 gftp 可以使用
##scp
scp也是基于ssh登录的文件copy命令,操作方便,可用于将本地文件copy到远程主机上。
从本地复制到远程主机
1 | //复制文件 |
从远程主机复制到本地,只要将 从本地复制到远程主机的命令 的后2个参数 调换顺序 即可。
注意两点:
1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:scp -p 4588 remote@www.abc.com:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。
##nohup ‘&’ etc.
通常我们在终端执行脚本时,进程运行在前台,(若运行时间长)运行时是不能执行其他任务的。
若想将当前正在前台执行的进程转到后台,我们可以使用一下命令:
1 | ctrl + z //将任务放到后台去,并暂停; |
还有相关命令:
1 | fg <%int> //将后台任务的程序放到前台; |
不过若我们连接远程服务器后,想要长期运行一个脚本,仅仅如此是不够的
使用常规方法后,当我们退出脱离终端后,进程随之终止。
而‘nohup’命令可以解决这个问题。
1 | //have loged in a remote linux server |
nohup 命令的作用就是可以让 shell 命令忽略 SIGHUP 信号,即可以使之脱离终端运行
此命令长用于:
- 执行程序耗时长(如unzip sth),而网络不稳定
- 执行完需要关闭终端
##References
SCP 命令
简单而有用的 nohup 命令
nohup 命令用法释疑
修复“正确操作nohup让程序始终在后台运行”中已发现的问题