一:ssh
ssh的三个组件
①、ssh远程登录pietty、putty、secureCRT
②、sftp文件共享(类FTP)SSH Seccure File Transfer Client
③、scp文件共享(类CP)
ssh:
默认禁止空密码用户登录
[[email protected] ~]# ssh [email protected] [email protected]‘s password: Last login: Thu Jul 16 09:56:24 2015 from 172.16.11.235 [[email protected] ~]$ exit logout Connection to 172.16.11.235 closed. [[email protected] ~]# ssh -2 [email protected] [email protected]‘s password: Last login: Thu Jul 16 09:57:08 2015 from 172.16.11.235 [[email protected] ~]$ exit logout Connection to 172.16.11.235 closed. [[email protected] ~]# [[email protected] ~]# rpm -qa | grep ssh openssh-clients-5.3p1-94.el6.x86_64 libssh2-1.4.2-1.el6.x86_64 openssh-5.3p1-94.el6.x86_64 openssh-server-5.3p1-94.el6.x86_64 [[email protected] ~]#
-2 ssh2 安全性更高,
配置文件:/etc/ssh/sshd_config
#PermitRootLogin yes 默认允许root远程登录
[[email protected] ~]# ssh -2 -p 10022 [email protected] #小写的p [email protected]‘s password: Last login: Thu Jul 16 09:57:23 2015 from 172.16.11.235 [[email protected] ~]$ exit logout Connection to 172.16.11.235 closed.
②、sftp
[[email protected] ~]# sftp 172.16.11.235 #不写就默认以当前的用户名登录 Connecting to 172.16.11.235... [email protected]‘s password: sftp> #和FTP的操作命令完全一样 [[email protected] ~]# sftp [email protected] Connecting to 172.16.11.235... [email protected]‘s password: sftp>
③、scp:
本机拷贝文件到远程主机:
scp本地文件 用户名@远程主机地址:远程主机目标目录
scp -r 本地目录 用户名@远程主机地址:远程主机目标目录
例:
[[email protected] ~]# scp /etc/inittab [email protected]:/mnt [email protected]‘s password: inittab 100% 884 0.9KB/s 00:00 [[email protected] ~]#
从远程主机拷贝文件到本地:
scp 用户名@远程主机地址:远程文件 本地目录
scp -r 用户名@远程主机地址:远程目录 本地目录
[[email protected] ~]# scp -r [email protected]:/mnt ~ [email protected]‘s password: 222 100% 0 0.0KB/s 00:00 xxj1 100% 133KB 132.6KB/s 00:00 inittab 100% 884 0.9KB/s 00:00 [[email protected] ~]# ls 111 install.log.syslog testfile1 新文件 222 mnt testfile10 值班表.xls anaconda-ks.cfg test1 xxj1 auto.ftp test10 zhcon-0.2.3-1.i386.rpm install.log testfile 新建文本文档 (2).txt [[email protected] ~]# ls ./mnt inittab website xxj1 [[email protected] ~]#
常用选项:-p 保持原有文件属性 #建议备份时一定要加上,保持时间不变
-r 复制目录
-P 指定端口号
例:要备份服务器172.16.11.202上的/website到172.16.11.235
每周日做一次完全备份,周一到周六做每天做一次增量备份
1、crontab -e 0 2 * * 0 /usr/bin/scp -rp [email protected]:/website111 /back/website111_$(date+%F)
但是这里有一个问题,这里要输入root的密码,不能自动化执行,有交互过程,
解决这个问题就要把这2台主机建立信任关系
先介绍一点密码相关的知识:
对称密钥加密:加密与解密使用同一密钥
优势:速度块
劣势:密钥本身需要交换
非对称密钥加密:也称公开密钥加密,使用时生成两个密钥,一个公开存放,为公钥:一个私人持 有,为私密。用户其中的一个密钥加密的数据只有另一个密钥才能解密
优势:安全性好
缺点:速度慢
所以加密信息时,通常都是对称密钥加密与非对称密钥结合使用。
用公钥加密,私密解密 --加密文件
用私钥加密,用公钥解密 --数字签名
建立信任主机:
主机一(本机) 主机二(远程主机)
建立密钥对 获得主机一公钥,并生存认证密钥:
#ssh-keygen -t rsa #cat id_rsa.pub >> .ssh/authorized_keys
生成公钥 id_res.pub #chmod 600 .ssh/authorized_keys
#chmod 700 .ssh
此时从主机一访问主机二将不再需要输入密码
二、rsync应用
方便的增量备份实现
可镜像保存整个目录树和文件系统
保持文件的权限、时间、软硬链接等
文件传输效率高
可以使用SSH加密通道
2 crontab -e 0 2 * * 1-6 /usr/bin/rsync -arHz --delete [email protected]:/website /backup
-a 保持文件属性
-r 子目录递归处理
-H 保持文件硬链接
-z 备份文件传输时压缩处理
--progress 在传输时显示传输过程
--delete 删除目标备份没有的文件
-e ssh 使用SSH加密隧道传输