8-30随堂笔记记录
8-30随堂笔记
一、rsync工具介绍
二、rsync常用选项
三、rsync通过ssh同步
四、 rsync通过服务同步
五、linux系统日志
六、screen工具
七、扩展
一 rsync工具介绍
Rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的
文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同
步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,同时可以对
上传部分先进行压缩,因此rsync效率很高。
优点:
rsync可以复制显示目录属性及文件,而且可以选择性地压缩及递归复制。
缺点:
但是rsync每次执行rsync命令都会遍历目标目录,如果文件数达到了一定规模,每次遍历就会消耗很多资源。
Rsync 支持大多数的类 Unix 系统,无论是 Linux 、 Solaris 还是 BSD 上都经过
了良好的测试。此外,它在 windows 平台下也有相应的版本,比较知名的有cwRsync 和 Sync2NAS 。
Rsync 的基本特点如下:
1.可以镜像保存整个目录树和文件系统;
2.可以很容易做到保持原来文件的权限、时间、软硬链接等;
3.无须特殊权限即可安装;
4.优化的流程,文件传输效率高;
5.可以使用 rcp 、 ssh 等方式来传输文件,当然也可以通过直接的 socket 连
接;
6.支持匿名传输。
二 rsync常用选项
rsync常用选项
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性。包含rtplgoD参数选项
-r 同步目录时要加上,类似cp时的r选项
-v 详细输出模式,传输时的进度等信息
-l 保留软连接
若是拷贝的原目录里面有一个软链接文件,那这个软链接文件指向到了另外一个目录下,在加上l,它会把软链接文件本身拷贝到目标目录里面去
-L 加上该选项后,同步软链接时会把源文件给同步
-p 保持文件的权限属性
-o 保持文件的属主
-g 保持文件的属组
-D 保持设备文件信息
/dev/sdb1 这样的设备文件有它的特殊性,如果不加D 可能拷贝过去就是一个非常普通的文件,不能当设备来用
-t 保持文件的时间属性
-delete 删除DEST中SRC没有的文件
--exclude 过滤指定文件,如exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步
-P 显示同步过程,比如速率,比v更加详细
-u 加上该选项后,如果DEST中的文件比SRC新,则不同步
update
rsync 有六种不同的工作模式:
1) 拷贝本地文件。当 SRC 和 DES 路径信息都不包含有单个冒号 ":" 分隔符时就启动这工作模式。
rsync -av /root/test/ /tmp/test_dest/ //将test的文件夹下的内容同步到tmp下并且命名为test_dest目录
2) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将本地机器的内容拷贝到远程机器。当 DST 路径地址包含单个冒号 ":" 分隔符时启动该模式。
rsync -avz test.c [email protected]:/home/user/src
3) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将远程机器的内容拷贝到本地机器。当 SRC 地址路径包含单个冒号 ":" 分隔符时启动该模式。、
rsync -avP 192.168.101.2:/tmp/123.txt /tmp/123.txt //从101.2上拉过来123.txt文件
4) 从远程 rsync 服务器中拷贝文件到本地机。当 SRC 路径信息包含 "::" 分隔符时启动该模式。
rsync -avP /tmp/123.txt 192.168.101.33::test/ //将文件传给192.168.101.33
5) 从本地机器拷贝文件到远程 rsync 服务器中。当 DST 路径信息包含 "::" 分隔符时启动该模式。
rsync -avP /tmp/yum.log 192.168.101.33::test/yum-01.txt //将本地的yum.log的文件放到服务机上的yum-01.txt
6) 列远程机的文件列表。这类似于 rsync 传输,不过只要在命令中省略掉本地机信息即可。
rsync -v rsync://192.168.101.33 /test //列出101.33上的文件
三、rsync通过ssh同步
将本地文件传输到远程主机。两台主机均需安装rsync工具
使用两个虚拟,主机服务器为192.168.101.33 本地端为为192.168.101.2
yum -y install rsync //两台设备都需要安装按后rsync
先看101.2的tmp下创建一个123.txt的文件夹
rsync -avP 192.168.101.2:/tmp/123.txt /tmp/123.txt //从101.2上拉过来123.txt文件
这里会需要输入密码
假如不是22端口,需要加上参数"ssh -p 22"
rsync -avP -e "ssh -p 22" 192.168.101.2:/tmp/123.txt /tmp/123.txt //加上 –e “ssh –p 22”
指定22端口。
ssh免密同步(**验证)
1).//如192.168.1.215需要免密码实现到192.168.1.211的rsync复制,可以通过**认证的方式 //生成**对
[[email protected] zhaoxiagnlinux ~]# ssh-****** -trsa
2). //将公钥复制到192.168.1.211,并将公钥内容添加到/root/.ssh/authorized_keys文件 [[email protected] ~]# ssh-copy-id 192.168.1.211
3). [[email protected] ~]# rsync -av 192.168.1.211:/etc/passwd /tmp/mypasswd
四、 rsync通过服务同步
1.新建rsync的配置文件,vim编辑
/etc/rsyncd.conf //配置文件
拷贝文件复制一下
rsyncd.conf样例:
port=873 //监听端口
log file=/var/log/rsync.log //log日志
pid file=/var/run/rsyncd.pid
address=192.168.101.33
[test] //所属域,非常重要
path=/root/rsync
use chroot=true
max connections=4 //最大连接数
read only=no
list=true //允许列清单
uid=root
gid=root
auth users=test
secrets file=/etc/rsyncd.passwd //密码配置文件
hosts allow=192.168.101.2
rsync --daemon //启动rsync
2.创建rsync用户及共享目录/backup
netstat nltup | grep :873
echo "rsync daemon" >> /etc/rc.local
cat /etc/rc.local //加到开机进程
rsync avz dir2/ [email protected]::backup --passwordfile=/etc/rsync.password
//在客户端192.168.1.215上往服务器推送目录dir2
rsync avz [email protected]::backup /tmp/backup/ --passwordfile=/etc/rsync.password
//从服务端往下拉文件
提示没有路由
这种情况下关iptables,firewalld,也可以用telnet尝试
iptables –nvL 查看当前iptables
telnet 192.168.101.33 873
rsync -avP /tmp/yum.log 192.168.101.33::test/yum-01.txt //将本地的yum.log的文件放到服务机上的yum-01.txt
可以将验证注释一下(上面已经说明)
上面是传送到服务端上,那么下面尝试从服务器上取文件
rsync -avP 192.168.101.33::test/123.txt /tmp/666.txt //从服务器那边取123.txt的文件夹放到666.txt中
五、linux系统日志
Linux系统中会有很多的日志文件,这些文件可以帮助我们了解很多系统的重要事件。这些文件一般都存放在/var/log目录中。常见的日志文件有:
1./var/log/messages:这个文件相当重要,几乎系统发生的所有错误信息或重要
信息都会记录在这个文件中,包含系统启动时的引导消息及系统运行时的其他状态消息。
2./var/log/secure:记录系统的安全信息,如ssh、ftp、pop3
3./var/log/dmesg:记录系统在启动时核心检测过程所生产的各项信息
4./var/log/lastlog:记录系统上所有用户最后一次登录系统的信息,lastlog命令
就是利用该文件的内容来显示数据的。
5./var/log/wtmp:记录用户登录系统及退出系统的信息,该文件是经过处理的,
无法直接查看,可以使用相关命令来查看,如last和ac命令
6./var/log/boot.log:记录守护进程启动和停止相关的日志信息
7./var/log/faillog:记录登录失败时的用户信息
8./var/log/cron:记录与定时任务crontab相关的日志信息
9./var/log/httod/,/var/log/news/,/var/log/samba/*:各个服务的日志文件,记录各
自的服务产生的日志信息
syslogd服务可以帮助我们主动收集到设备的各种信息,并将其保存在服务器上,当出现问题时可以省去手动收集信息的麻烦,方便快捷的从syslogd服务中读取各种信息进行分析排错。
在centos7中已经用rsyslogd取代了syslogd。rsyslod是加强版的syslogd,且完美兼容syslogd。
ls /var/log/dmesg //系统启动日志
less /var/log/dmesg //查看登录重启日志
用last去调用二进制文件
ls /var/log/secure //安全日志,可以用less查看
rsyslogd的主要配置文件:/etc/rsyslog.conf
六、screen工具
screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNUScreen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
会话恢复
只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行
的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。
多窗口
在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。 会话共享 Screen可以让一个或多个用户从不
同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。
screen直接回车就进入了虚拟终端
ctrl a组合键再按d退出虚拟终端,但不是结束
screen ls 查看虚拟终端列表
screen r id 进入指定的终端
screen S w1
screen r w1
需求,执行一个脚本,需要一天一夜,而且脚本会输出一些东西出来,这就意味
着这个脚本不能中途断开,保证脚本不中断,有两种方法:
方法一:把这个任务丢到后台去,然后加一个日志的输出
命令nohup command &——>nohup 加执行命令 加日志 再加一个&符号
这时即使你的终端断开,依旧会在后台执行——>但虽然解决了任务中断的问
题,但是没有办法实时查看输出的内容
方法二:screen工具,可以把要执行的命令,放到这个终端里,然后在退出
pts/0之前,可以把screen丢到后台去,随时用, 随时查看
screen可以执行多个虚拟终端,同时运行,若想进入到其中一个,指定id即可的)
我们可以给screen作业的名称
screen S "test_screen"
screen r 后可以加id号,可以是screen作业的名称
七、扩展
1. Linux日志文件总管logrotate http://linux.cn/article41261.html
2. xargs用法详解 http://blog.****.net/zhangfn2011/article/details/6776925