5.47/5.48 日志
在运维工作中,遇到问题,首先要想到查日志。
日志主要有两大类:系统日志和服务日志。
服务日志常见的有:
Nginx:访问日志、错误日志
PHP-FPM:错误日志、慢查询日志
PHP:错误日志
MariaDB/MySQL:错误日志、慢查询日志
Tomcat:访问日志、catalina.out
其它服务:FTP、Zabbix等等
系统日志:
/var/log/messages 记录系统里所有的操作,如果某个服务没有定义日志路径的相关信息,则也会将服务日志记录到该日志中
/var/log/secure 安全日志,会记录系统的登陆信息,包括用户登陆及FTP
/var/log/dmesg 记录系统在启动时生成的硬件信息``
命令dmesg
:查看硬件实时信息,加-c
选项清空信息
命令last
:查看正确的登陆历史,对应 /var/log/wtmp
命令lastb
:查看错误或异常登陆信息,对应 /var/log/btmp
5.49数据备份介绍
数据主要分为两大类:
文件类:
程序代码、图片、附件、软件包、配置文件
数据(数据库)类:
关系型数据库(MySQL/MariaDB等)、非关系型数据库(Redis、MongoDB等)
备份原则:
每日一备份,本地保存一份,远程保存一份,根据数据重要性和磁盘空间决定保存周期。
文件类的备份:
tar、scp、cp、rsync
数据类:
自带工具实现备份(mysqldump、Xtrabackup)
5.50-5.54 rsync工具
rsync是Linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。
特性:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
rsync命令格式:
1)本地使用:
rsync [OPTION...] SRC... [DEST]
2)通过远程Shell使用:
拉:rsync [OPTION...] [USER@]HOST:SRC... [DEST]
推:rsync [OPTION...] SRC... [USER@]HOST:DEST
3)访问rsync服务器:
拉:rsync [OPTION...] [USER@]HOST::SRC... [DEST]
推:rsync [OPTION...] SRC... [USER@]HOST::DEST
拉:rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
推:rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
其中:
- SRC:是要复制的源位置
- DEST:是复制目标位置
- 若本地登录用户与远程主机上的用户一致,可以省略
USER@
- 使用远程shell同步时,主机名与资源之间使用单个冒号
:
作为分隔符 - 使用rsync服务器同步时,主机名与资源之间使用两个冒号
::
作为分隔符 - 当访问rsync服务器时也可以使用
rsync:// URL
- “拉”复制是指从远程主机复制文件到本地主机
- “推”复制是指从本地主机复制文件到远程主机
- 当进行“拉”复制时,若指定一个SRC且省略DEST,则只列出资源而不进行复制
常用选项:
选项 | 说明 |
---|---|
-a | 归档模式,表示以递归方式传输文件,并保持所有文件属性,等价于-rlptgoD(注意不包括-H) |
-r | 对子目录以递归模式处理 |
- | 保持符号链接文件 |
-H | 保持硬链接文件 |
-p | 保持文件权限 |
-t | 保持文件时间信息 |
-g | 保持文件属组信息 |
-o | 保持文件属主信息(super-user only) |
-D | 保持设备文件和特殊文件(super-user only) |
-z | 在传输文件时进行压缩处理 |
–exclude=PATTERN | 指定排除一个不需要传输的文件匹配模式 |
–exclude-from=FILE | 从FILE中读取排除规则 |
–include=PATTERN | 指定需要传输的文件匹配模式 |
–include-from=FILE | 从FILE中读取包含规则 |
–copy-unsafe-links | 拷贝指向SRC路径目录树以外的链接文件 |
–safe-links | 忽略指向SRC路径目录树以外的链接文件(默认) |
–existing | 仅仅更新那些已经存在于接收端的文件,而不备份那些新创建的文件 |
–ignore-existing | 忽略那些已经存在于接收端的文件,仅备份那些新创建的文件 |
-b | 当有变化时,对目标目录中的旧版文件进行备份 |
–backup-dir=DIR | 与-b结合使用,将备份的文件存到DIR目录中 |
–link-dest=DIR | 当文件未改变时基于DIR创建硬链接文件 |
–delete | 删除那些接收端还有而发送端已经不存在的文件 |
–delete-before | 接收者在传输之前进行删除操作(默认) |
–delete-during | 接收者在传输过程中进行删除操作 |
–delete-after | 接收者在传输之后进行删除操作 |
–delete-excluded | 在接收方同时删除被排除的文件 |
-e | 指定替代rsh的shell程序 |
–ignore-errors | 即使出现I/O错误也进行删除 |
–partial | 保留那些因故没有完全传输的文件,以是加快随后的再次传输 |
–progress | 在传输时显示传输过程 |
-P | 等价于–partial --progress |
–delay-updates | 将正在更新的文件先保存到一个临时目录(默认为“.~tmp~”),待传输完毕再更新目标文件 |
-v | 详细输出模式 |
-q | 精简输出模式 |
-h | 输出文件大小使用易读的单位 |
-n | 显示哪些文件将被传输 |
–list-only | 仅仅列出文件而不进行复制 |
–rsyncpath=PROGRAM | 指定远程服务器上的rsync命令所在路径 |
–password-file=FILE | 从FILE中读取口令,以避免在终端上输入口令,通常在cron中连接rsync服务器时使用 |
-4 | 使用 IPv4 |
-6 | 使用 IPv6 |
–version | 打印版本信息 |
–help | 显示帮助信息 |
其它:
- 若使用普通用户身份运行 rsync 命令,同步后的文件的属主将改变为这个普通用户身份。
- 若使用超级用户身份运行 rsync 命令,同步后的文件的属主将保持原来的用户身份。
rsync的数据同步方式:
1)本地磁盘同步数据:
rsync -a --delete /home /backups
rsync -a --delete /home/ /backups/home.0
在指定复制源时,路径是否有最后的/
有不同的含义,例如:
/home
:表示将整个/home目录复制到目标目录/home/
:表示将/home目录中的所有内容复制到目标目录
2)基于ssh的rsync远程同步数据:
执行“推”复制同步
[root@riceyoung01 ~]# rsync /etc/hosts riceyoung02:/etc/hosts
执行“拉”复制同步
[root@riceyoung02 ~]# rsync riceyoung01:/etc/hosts /etc/hosts