美文网首页Linux学习之路我用 Linux工具癖
工具|sync-deply:用命令掌握你的远程主机

工具|sync-deply:用命令掌握你的远程主机

作者: 王诗翔 | 来源:发表于2018-09-24 16:50 被阅读201次

不知道你是否也曾像我一样面对这样的问题:想要简单的在远程主机上上传下载数据文件、运行个命令,但要么需要通过ssh直接登录主机,要么需要频繁的输入ssh或scp等命令以及ip地址,密码。

sync-deploy工具集是我去年在解决这样的问题以及远程部署PBS计算任务不便时开始写,其实质是一堆shell脚本。最近考虑到我有时候需要增加主机、切换主机,于是又新增了相应的命令,因此也再次汇总整理一下这些命令。

只要系统可以执行shell,基本都能用这个工具,因为它的实现基本就是对ssh和scp的封装。

下面我对目前可用的10个命令进行简要介绍,一些详情可以阅读https://github.com/ShixiangWang/sync-deploy

主要分为下载、配置和使用三部分,前两部分都是一次性步骤。

下载

点击下载

或克隆:

git clone https://github.com/ShixiangWang/sync-deploy.git

下载后执行add_path.sh脚本将命令添加到环境路径中,这样无论你处于什么目录都能使用。

cd sync-deploy/src
./add_path.sh

如果是苹果系统,默认会将路径写入~/.bash_profile;如果是其他系统,默认会写入~/.bashrc。如果使用的其他sh,比如zsh,那么系统识别路径不是上述两者,可以通过-d选项指定。

除了sync-command命令没有选项,其他命令基本都有选项需要指定。

准备与配置

首先在服务器端配置本地机器的公钥,以便于实现无密码文件或命令传输。

最简单的方式是在终端键入ssh-keygen然后一路按回车键。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/wangshx/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/wangshx/.ssh/id_rsa.
Your public key has been saved in /c/Users/wangshx/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:XaNcpRZHmMp65eHKDzYIzbXYB0ZAb3EHYc7T3azgQD4 wangshx@wsx-liuxslab
The key's randomart image is:
+---[RSA 2048]----+
|       .o.+ **=  |
|         = *oB o.|
|         .E.@ . +|
|       o Oo@o+ . |
|      . S.*+o..  |
|       .....o    |
|        .o+.     |
|         .oo     |
|           ..    |
+----[SHA256]-----+

如果你使用的是windows7或者10,不知道怎么使用ssh,我推荐你安装git bash,windows10用户也可以开启Ubuntu子系统以便于使用。

将公钥id_sra.pub(本地机器.ssh子目录下)中文本内容拷贝到服务器.ssh子目录中的authorized_keys中,放在已有文本后面。如果该文件不存在则创建。

进行测试,如果不需要密码登录则成功。

然后点击打开当前目录(src/)的sync-setting文件,将远程主机的host名与ip地址改为你自己的(也可以使用后面的sync-hostadd命令)。

如果ssh服务还没有开启,请参考https://www.linuxidc.com/Linux/2015-01/112045.htm解决。

使用

使用可以分为4种类型:

  • 上传/下载文件
  • 运行命令或脚本
  • 增加/删除以及切换主机
  • PBS任务计算

下面我列出对应的命令,使用非常简单,可以通过命令 + h选项的方式阅读使用说明(除了sync-command),比如sync-download下载文件(文件夹):

Usage: sync-download -n 'remote_files' -d localdir
>>> remote_files: files you wanna download, can be directories or filenames
>>> localdir: The only one directory you wanna transfer to.
>>>          Do not set more than one destdir, error will occur.
>>>     Please do note the 'remote_files' must be quoted otherwise you use absolute file path!!!
>>>
>>> examples:
              sync-download -n '~/test/*' -d ./test
         or
              sync-download -n /public/home/liuxs/test/* -d ./test

上传/下载文件

  • sync-upload - 上传文件(夹)
  • sync-download - 下载文件(夹)

运行命令或脚本

  • sync-commad - 后面直接接运行的远程主机命令,命令最好用引号括起来,以与本地主机命令或文件/路径区别

比如查看远程主机家目录,为展示区别,我看看本地主机家目录:

$ sync-command 'ls'
biodata
download
practice
readme.md
soft
tmp
workspace
zhuqi
$ ls
Applications Documents    Library      Music        Public
Desktop      Downloads    Movies       Pictures
  • sync-run 运行远程主机可执行文件

增加/删除以及切换主机

  • sync-hostadd 增加主机
  • sync-hostdel 删除主机
  • sync-switch 切换主机

PBS任务计算

  • sync-template 新建PBS任务模板
  • sync-deploy 部署PBS计算任务
  • sync-check 检查PBS任务状态

配合使用,威力无穷~

相关文章

  • 工具|sync-deply:用命令掌握你的远程主机

    不知道你是否也曾像我一样面对这样的问题:想要简单的在远程主机上上传下载数据文件、运行个命令,但要么需要通过ssh直...

  • 免密钥登录

    用A主机免密钥远程连接B主机 前提远程连接的用户相同,以weblogic用户为例: 在A主机执行以下命令 1.ss...

  • Linux_151_telnet命令

    telnet命令在以前是用于登录远程主机的命令,以及检测远程主机的端口是否打开了,但是telnet命令采用的是明文...

  • Linux常用命令大全

    1、关机命令 2、查看登录日志 3、SCP命令从远程主机复制指定目录到当前目录 4、rsync命令从远程主机复制指...

  • scp 和 screen

    scp命令可以实现在linux系统之间安全的传输文件 scp [参数] 本地文件 远程主机账户@远程主机地址:远程...

  • 【开源工具】sync-deploy命令工具:让远程命令操作更简单

    【工具Github主页】该命令集可以非常方便地向远程主机/服务器上传文件、运行远程脚本、下载文件等。 目录: 目的...

  • scp远程拷贝

    scp :用于不同主机之间的远程拷贝操作命令(本地当然可以了啊) 本地文件复制到远程: // 知道远程主机的用户...

  • 环境测试

    测试环境 OS:win10 CRT工具:xshell 远程主机 vpn:公司OA VPN 远程主机地址:192.1...

  • rsync

    rsync rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓...

  • 使用OpenSSH登录远程主机

    常用的命令行登录远程主机: 使用SSH密钥登录: 生成密钥文件: 上传.pub内容到远程主机的~/.ssh/aut...

网友评论

  • 王诗翔:考虑到自己记忆力不行,增加了一个新命令sync-hostlist 列出主机

本文标题:工具|sync-deply:用命令掌握你的远程主机

本文链接:https://www.haomeiwen.com/subject/zyfhoftx.html