1.rsync工具介绍
Linux系统下有很多数据备份工具,常用的是rsync,从字面意思理解为remote sync(远程同步)。rsync不仅可以远程同步数据(类似于scp),而且可以本地同步数据(类似于cp),但不同于cp或者scp的一点是,它不会覆盖以前的数据(如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖,它可以在本地复制,通过任何远程shell或从另一台主机复制到/从远程rsync守护进程,Rsync很广泛用于备份和镜像以及作为改进的复制命令日常使用。
上面命令中:
- a参数中包含了很多选项,后面会详细介绍
- v查看到可视化过程
- 查看到发送了多少个字节
- 多少字节每秒
- 文件一共有多大
- 速度是多少
这里要求远程的机器也必须安装有rsync,需要验证密码是因为这里没有做两机互联
一些常用的命令语法格式:
- rsync [OPTION]... SRC DEST
- rsync [OPTION]... SRC [USER@]host:DEST // 第一例不加user@host,默认的就是root
- rsync [OPTION]... [USER@]HOST:SRC DEST//从远程目录同步数据到本地
- rsync [OPTION]... [USER@]HOST::SRC DEST
- rsync [OPTION]... SRC [USER@]HOST::DEST
里面SRC是源文件或者目录,DEST是目标目录或者文件; [USER@]HOST是远程服务器,host代表IP,方括号可以省略
2.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更加详细
- --progress 同-P功能一样
- -u 加上该选项后,如果DEST中的文件比SRC新,则不同步
- -z 传输时压缩
上述选项较多,常用的有**-a,-v,-z,--delete和--exclude.**
3.rsync通过ssh同步
把文件同步到远程机器
也可以把远程文件同步到本机上(同端口之间传输文件)
ssh -p 22 是一个命令,可以直接连接对方机器
4.rsync通过服务同步
这种方式可以理解为:在远程主机上建立一个rsync服务器,在服务器上配置好rsync的各种应用,然后将本机作为rsync的一个客户端连接远程rsync服务器
通过设置etc/rsyncd.conf演示
把下面文件写入配置文件/etc/rsyncd.conf
启动rsync服务
建立试验目录,并给予777权限(方便我们做实验)
有错误监察以下那里出错了
之后关闭firewalld服务关闭
再次执行传输,此时不需要,密码
查看输出结果
配置文件详情
1.在服务端,建立一个软连接并修改配置文件/etc/rsyncd.conf
2.在B机器上进行同步test模块
- max connections:指定最大的连接数;默认为0
- read only ture|false :如果为true,则不能上传到该模块指定的路径下
- list:该模块是否被列出,设定为true则列出,false则隐藏。(--port 8730 指定端口)
1.新建rsyncd.passwd文件,并且设置600权限
2.同步test不需要输入密码
3.在客户端设置密码文件以后些脚本的时候能用到
5.Linux系统日志
日志记录了系统每天发生的各种各样的事情,比如监测系统状况、排查系统故障等,你可以通过他来检查错误发生的原因。
系统日志几切割
系统日常日志 /var/log/message; 它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO错误、网络错误和其他系统错误都会记录到这个文件中。另外其他信息,比如某个人的身份切换为root以及用户自定义安装的软件(apache)的日志也会在这里列出。
linux系统中有一个logrotate服务,会自动切割日志,防止无限制的增加
- syslog文件会为cron,maillog,messages,secure,spooler这几个日志进行切割
- messages日志是由 syslogd 服务决定的,所以 kill -HUP 就会重新加载这个日志
- 还有一个脚本,shell命令行,在把日志切割后(挪走),改名字生成新的日志
- Linux系统有一个特点,一个服务写一个文件的时候,并不是按照文件名去写的,而是根据inode来写的
dmesg命令
这个日志是保存在内存中的,并不是一个文件; 假如你的网卡有问题了,硬盘损坏了,都会记录在这个日志中
/var/log/dmesg日志文件
这个日志文件和 dmesg命令 没有任何关联;它是系统启动的一个日志,记录的信息
last命令
- 它调用的文件/var/log/wtmp。
- 里面记录是是谁,在哪里,来源IP,时间,登录的时长都会有记录
- /var/log/wtmp日志是一个二进制文件,不能直接cat查看的,只能用last命令去查看
lastb命令
- 对应的文件时/var/log/btmp 日志
- /var/log/btmp也是二进制文件,不能直接cat的
安全日志
/var/log/secure 比如登录操作系统,验证成功会在这里记录一个日志,失败也会去记录
6.screen工具
有时候我们需要执行一个命令或脚本,需要几小时甚至几天,在这个过程中,如果中途断网或者出现有其他意外情况怎么办,当然也可以把命令或者脚本放到后台运行,不过不保险,无法在屏幕上随时查看,这就要用到虚拟终端screen
如果想要退出screen可以按ctrl+a,再按d,退出
退出后,如果想再次登入某个screen会话,可以使用的是screen -r [编号]
如果screen太多,却不知道其功能作用;需要命令和定义