linux下ssh远程登录/scp远程复制文件/rsync远程同步命令的自动登录

作者:佚名 上传时间:2019-04-11 版权申诉

原文出处: http://blog.csdn.net/five3/article/details/8648484


最近需要写一个脚本备份各个服务器上的程序到一个指定服务器上,本来以为查查rsync命令的使用321就能搞定,结果rsync命令要支持自动登录还是要配置服务和参数,又不确定网上说的配置的行不行,因为都是一个样,但是没有说明头尾,所以选择了一个尝试代价较小的ssh自动登录来替代之。

ssh 大家都能用到,通常我们用到的功能基本就是登录,或者远程执行shell命令。

  1. ##登录
  2. ssh loginuser@host_or_ip
  3. ##执行远程命令
  4. ssh loginuser@host_or_ip commands

但通常要是执行命令的话,都是执行shell脚本,肯定不想每次自己再输入密码,就不能自动化也就少了快感啦。所以要让ssh能自动登录,方法好像有很多,这里就用尝试代价最小的,公钥认证的方式。具体操作见下:

A:为本地机

B:为远程服务器【被登录】

1、在A上生成ssh的私钥和公钥【生成的文件都在~/.ssh目录下】

  1. ssh-keygen -t rsa     ##需要3次回车
  2. ssh-keygen -t rsa -P  ##仅一次回车

2、把A的公钥内容传到B的用户目录的.ssh文件夹下的 authorized_keys文件中

  1. scp ~/.ssh/id_rsa.pub B_user@B_host_or_ip:~/.ssh/authorized_keys  ##希望每次自动登录用什么用户,这里的B_user就用什么帐号,因为默认会考到这个帐号下.ssh中
注意:一定要把内容放到 authorized_keys文件里,如果这个文件已经存在,那就追加到后面即可,不要覆盖了。

3、A再用ssh进行操作时就不需要输入密码了

  1. ssh B_user@B_host_or_ip  ##直接登录成功

SCP 和ssh是一套的,只不过这个工具用来在linux之间进行文件传输的,用的和ssh一样的安全传输协议。所以在ssh能够自动登录之后,使用scp命令进行服务器间的文件复制也就不要手动输入密码了,其实这样此时已经可以实现shell脚本自动备份文件的功能了,因为scp就是一个服务器间的copy程序,scp就是安全copy的意思,scp常用的命令为:

  1. scp /path/to/source user@des:/path/to/local   ##本地赋值到远程
  2. scp user@source:/path/to/source /path/to/local  ##远程复制到本地

Rsync 命令是一个远程同步程序,与scp相比,它可以以最小的代价备份文件,只备份有差异的文件,这样每次备份就少了很多时间,此外在传输协议上除了自身的协议之外,还支持以ssh的方式传输。只要加个ssh参数即可,常用的命令格式:

  1. rsync -avH [ssh] /path/to/source user@des:/path/to/local  ##本地同步到远程,推
  2. rsync -avH [ssh] user@des:/path/to/source /path/to/local  ##远程同步到本地,拉
同样的,这个命令在ssh能够自动登录后就可以不用输入密码就可以自动同步文件了,当然这个工具自己也可以支持不输入密码的命令,--password-file=/path/to/pwd,只不过还需要配置rsync服务,比较麻烦,以后有必要了再试。

shell 能自动执行备份了,还有就是希望能定期自己备份,别老是人去触发,这个时候就用到linux的任务计划命令 crontab ,其常用的命令格式为:

  1. * * * * * /command_path
  2. 前5个*依次代表
  3. 分钟:0-59
  4. 小时:1-23
  5. 日期:1-31
  6. 月份:1-12
  7. 星期:0-6(0表示周日)

还可以用一些特殊符号:

*: 表示任何时刻

,: 表示分割

-:表示一个段,如第二端里: 1-5,就表示1到5点

/n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

  1. 00 8,12,16 * * * /dataapp.sh
  2. 30 2 * * * /dataapp.sh
  3. 10 8,12,16 * * *  /dataapp.sh
  4. 10 8,12,16 * * *  /dataapp.sh
  5. 10 8,12,16 * * *  /dataapp.sh

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
linuxssh远程登录/scp远程复制文件/rsync远程同步命令自动登录
原文出处: http://blog.csdn.net/five3/article/details/8648484 最近需要写一个脚本备份各个服
Python自动远程登录SCP文件示例
本文将展示如何使用Python实现自动远程登录SCP文件,并提供示例代码。SCP是一种安全的文件传输协议,主要用于在本地和远程服务器之间传输文件。通过本文所提供的代码,您可以轻松实现SCP文件的自动传
pdf
59.04KB
2023-06-09 17:23
SSH远程登录linux
ssh用来windows远程登录linux,服务器端需要安装ssh。已经测试过肯定可以用。
RAR
0B
2019-07-10 03:54
菜鸟学Linux命令ssh命令远程登录
本篇文章主要介绍了菜鸟学Linux命令:ssh命令 远程登录 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
PDF
64KB
2020-10-28 04:50
菜鸟学Linux命令ssh命令远程登录
有的时候需要确认一下SSH客户端及其相应的版本号。使用ssh -V命令可以得到版本号。打开/etc/ssh/sshd_config文件并查找下面这样的行:将#号去掉,然后将yes修改成no,重启ssh
pdf
90.14 KB
2021-08-14 05:12
linuxssh远程登录工具
用于windows连接linux的远程登录软件ssh,非常好用的一款软件
ZIP
0B
2020-05-02 01:27
Linuxrsync远程数据同步命令详细介绍
rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具。rsync软件适用于unix/linux/windows等多种操作系统平台。下面这篇文章主要介绍了Linu
PDF
46KB
2020-09-21 09:10
scp远程复制命令
直接进入主题吧! scp命令基本格式: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_
详解 Linux SSH 远程文件传输命令 scp
相信各位VPSer在使用VPS时会经常在不同VPS间互相备份数据或者转移数据,大部分情况下VPS上都已经安装了Nginx或者类似的web server,直接将要传输的文件放到web serv
详解 Linux SSH 远程文件传输命令 scp
相信各位VPSer在使用VPS时会经常在不同VPS间互相备份数据或者转移数据,大部分情况下VPS上都已经安装了Nginx或者类似的web server,直接将要传输的文件放到web serv