故障索引
Rsync同步备份故障: | ||
---|---|---|
1.not a regular file | 不是普通的文件 | |
2.cannot delete non-empty directory | 无法删除非空目录 | |
3.Connection refused | 连接拒绝 | |
4.auth failed on module data auth | 模块数据失败 | |
5.Unknown module 'data' | 未知的模块的数据 | |
6.secrets file must be owned by root when running as root | 秘密文件 | |
7.read error: Connection reset by peer (104) | 读取错误:由对等方重置连接 | |
8.password file must not be other-accessible | 密码文件不能是其他可访问的 | |
9.denied on module data from UNKNOWN | 未知模块'数据' | |
10.chdir failed | 失败 | |
11.invalid uid rsync | 无效的用户 rsync | |
12.getcwd: cannot directories | getcwd 无法定位到当前目录 | |
13.failed to create pid file /var/run/rsyncd.pid: File exists | Rsync 服务器启动错误 | |
14.auth failed on module backup | 身份验证模块备份失败 |
NFS网络文件系统: | |
---|---|
1.access denied by server | 权限拒绝 |
2.Program not registered | 检查挂载信息失败没有注册 |
3.wrong fs type | 错误的文件系统类型 |
4.Read-only file system | 文件只读 |
ansible批量管理 | |
---|---|
"msg": "src and content are mutually exclusive" | 相互冲突,只能用一个 |
all of the following are missing: fstype | fstype参数找不到了 |
Could not match supplied host pattern, ignoring: 172.16.1.8 | 主机列表没有添加这个IP |
1. not a regular file 不是普通的文件
scp默认只能复制普通文件 与cp类似
scp加一个 -r 参数就好了
[12:37 root@backup ~]# scp /etc 172.16.1.31:nfs01/tmp/
root@172.16.1.31's password:
/etc: not a regular file
2.cannot delete non-empty directory 无法删除非空目录
symlink: 软链接 导致报错,可能已经备份过了
[12:39 root@backup ~]# rsync -av /etc 172.16.1.31:/tmp/
root@172.16.1.31's password:
sending incremental file list
cannot delete non-empty directory: etc/init.d
could not make way for new symlink: etc/init.d
cannot delete non-empty directory: etc/rc0.d
could not make way for new symlink: etc/rc0.d
.....
..
3.Connection refused 连接拒绝
检查是否能ping通对应服务器
[12:41 root@backup ~]# rsync -avz /etc 176.16.1.31:/tmp
ssh: connect to host 176.16.1.31 port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.2]
4.auth failed on module data
data模块认证错误(密码)
原因:
1.密码写错
2.密码文件不存在
3.密码文件权限不对
4.没有创建data这个目录
[root 16:15 @ backup ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::data
Password:
@ERROR: auth failed on module data
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]
原因:密码文件权限没有更改为600
[root 16:25 @ backup ~]# ll /etc/rsync.password
-rw-r--r-- 1 root root 20 May 20 16:05 /etc/rsync.password
解决办法:更改文件权限位600
[root 16:25 @ backup ~]# chmod 600 /etc/rsync.password
[root 16:25 @ backup ~]# ll /etc/rsync.password
-rw------- 1 root root 20 May 20 16:05 /etc/rsync.password
5.Unknown module 'data' 未知的设备模块
没有权限
[17:45 root@nfs01 ~]# rsync -avz /etc/hostname rsync_backup@10.0.0.41::data --password-file=/etc/rsync.password
@ERROR: Unknown module 'data'
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]
服务端查看rsyncd.conf ,准许哪些主机可以访问
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
6.秘密文件
日志中
密码文件问题
查看日志的提示:
019/05/20 16:52:32 [15755] secrets file must be owned by root when running as root (see strict modes)
2019/05/20 16:52:32 [15755] auth failed on module data from backup (172.16.1.41) for rsync_backup: ignoring secrets file
secrets file must be owned by root when running as root (see strict modes)
密码文件当root运行rsync的时候,必须属于root
[root@backup ~]# ll /etc/rsync.password
-rw------- 1 rsync rsync 20 May 20 16:49 /etc/rsync.password
7.read错误:由对等方重置连接
配置文件错误
[root@backup ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::data
sending incremental file list
rsync: read error: Connection reset by peer (104)
rsync error: error in socket IO (code 10) at io.c(785) [sender=3.1.2]
8.密码文件不能是其他可访问的
rsync -avz /etc/sysconfig/ rsync_backup@172.16.1.91::backup --password-file=/etc/rsync.password
ERROR: password file must not be other-accessible
rsync error: syntax or usage error (code 1) at authenticate.c(196) [sender=3.1.2]
9.未知模块'数据'
@ERROR:未知模块'数据'
2019/05/20 17:45:46 [10514] rsync denied on module data from UNKNOWN (10.0.0.31)
10.@ERROR: chdir failed
没有创建data备份这个目录
[20:35 root@backup ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::data
Password:
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2
解决办法:
[20:35 root@backup ~]# mkdir -p /data
[20:38 root@backup ~]# chown rsync.rsync /data/
[20:39 root@backup ~]# ll -d /data/
drwxr-xr-x 2 rsync rsync 6 May 20 20:38 /data/
[20:39 root@backup ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::data
Password:
sending incremental file list
hosts
sent 140 bytes received 43 bytes 52.29 bytes/sec
total size is 158 speedup is 0.86
11.invalid uid rsync 无效的uid rsync
推送到的接收端可能没有rsync这个虚拟用户
[09:40 root@nfs01 ~]# rsync -avz /etc/profile rsync_backup@172.16.1.41::data --password-file=/etc/rsync.password
@ERROR: invalid uid rsync
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]
去接收端服务器看一下:
[09:41 root@backup ~]# id rsync
id: rsync: no such user \\没有这个用户
12.getcwd: cannot directories
getcwd 命令无法定位到当前工作目录。一般来说是因为 cd 到了某个目录之后 rm 了这个目录,这时去执行某些 service 脚本的时候就会报 getcwd 错误。只需要 cd 到任何一个实际存在的目录下在执行命令即可。
[root@nfs01 /backup/172.16.1.31]# sh /tmp/rsync.sh
shellinit: error retrieving current directory: getcwd: cannot directories: No such file or directory
/usr/bin/tar: Removing leading `/' from member names
13.failed to create pid file /var/run/rsyncd.pid: File exists
Rsync 服务器启动错误
[13:25 root@backup ~]# rsync --daemon
[13:28 root@backup ~]# failed to create pid file /var/run/rsyncd.pid: File exists
解决方案:
rm -rf /var/run/rsyncd.pid;再重新启动Rsync服务(rsync --daemon)
[13:28 root@backup ~]# rm -rf /var/run/rsyncd.pid
[13:29 root@backup ~]# rsync --daemon
[13:30 root@backup ~]# netstat -lutup|grep rsync
tcp 0 0 0.0.0.0:rsync 0.0.0.0:* LISTEN 8585/rsync
tcp6 0 0 [::]:rsync [::]:* LISTEN 8585/rsync
14.auth failed on module backup 身份验证模块备份失败
[13:36 root@backup ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup
Password:
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]
查看服务端和客户端的密码文件的权限是否为600
查看密码是否正确还有一个深坑就是密码中有没有空格,把空格删除掉就可以了
二、nfs服务
1.权限拒绝
/etc/exports中指定的网段是172.16.1.31,这里是10.0.0.7外网段
[16:43 root@web01 ~]# mount -t nfs 10.0.0.7:/upload/ /video/
mount.nfs: access denied by server while mounting 10.0.0.7:/upload/
2.检查挂在信息失败
[16:51 root@nfs01 ~]# showmount -e 172.16.1.31
clnt_create: RPC: Program not registered
解决:nfs服务重启一下
[16:51 root@nfs01 ~]# systemctl restart nfs
[16:52 root@nfs01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/upload 172.16.1.0/24
3.wrong fs type
错误的文件系统类型 nfs文件系统无法识别
没有安装nfs-utils
[16:51 root@nfs01 ~]# mount -t nfs 172.16.1.31:/data /mnt/
mount: wrong fs type, bad option, bad superblock on 172.16.1.31:/data,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try
dmesg | tail or so
4.Read-only file system文件只读
在NFS服务挂载的/mnt/目录创建文件
[09:33 root@nfs01 /]# df -h
172.16.1.31:/data 19G 1.7G 18G 9% /opt
[09:33 root@nfs01 /]# touch /opt/1.txt
touch: cannot touch ‘/opt/1.txt’: Read-only file system
解决:/etc/exports的权限是只读访问
[09:33 root@nfs01 /]# vim /etc/exports
#share /data
/data 172.16.1.0/24(ro,sync,all_squash)
三、ansible批量管理
1."src and content are mutually exclusive"
copy的src参数和content参数相互冲突,只能用一个
[22:08 root@m01 ~]# ansible all -m copy -a 'src=/etc/hostname dest=/tmp/lidao.txt content="oldboy.com"'
172.16.1.7 | FAILED! => {
"changed": false,
"msg": "src and content are mutually exclusive"
}
172.16.1.41 | FAILED! => {
"changed": false,
"msg": "src and content are mutually exclusive"
}
172.16.1.31 | FAILED! => {
"changed": false,
"msg": "src and content are mutually exclusive"
}
2.state is mounted but all of the following are missing: fstype
状态是按照,但是fstype参数找不到了
加上 fstype=nfs
[14:59 root@m01 /etc/ansible]# ansible 172.16.1.7 -m mount -a ' src=172.16.1.31:/nfs path=/mnt state=mounted'
172.16.1.7 | FAILED! => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"msg": "state is mounted but all of the following are missing: fstype"
}
3.Could not match supplied host pattern
主机列表没有添加这个IP
[12:24 root@m01 /etc/ansible]# ansible 172.16.1.8 -m yum -a "name=tree name=lrzsz state=present"
[WARNING]: Could not match supplied host pattern, ignoring: 172.16.1.8
[WARNING]: No hosts matched, nothing to do
4.变量格式错误,需要加空格或者双引号
变量格式错误,需要加空格或者双引号
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
with_items:
- {{ foo }}
Should be written as:
with_items:
- "{{ foo }}"