最近集团私有云上了一个项目,工作分配给了新来的小伙子,让他重做部分服务器系统后搭建私有的Yum仓库。仓库是搭建好了,但是他反馈给我,无法使用,一直报错:[Errno 14] FTP Error 550 - Server denied you to change to the given directoryA。这里进行记录下排查及解决思路。
1.现象描述
(1)安装完毕Yum仓库后,镜像仓库主机安装内容报错
[root@localhost ftp]# yum install net-tools
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 net-tools.x86_64.0.2.0-0.25.20131004git.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
=============================================================================================================================================================
Package 架构 版本 源 大小
=============================================================================================================================================================
正在安装:
net-tools x86_64 2.0-0.25.20131004git.el7 c7-media 306 k
事务概要
=============================================================================================================================================================
安装 1 软件包
总下载量:306 k
安装大小:917 k
Is this ok [y/d/N]: y
Downloading packages:
No Presto metadata available for c7-media
net-tools-2.0-0.25.20131004git FAILED
ftp://192.168.188.2/pub/Packages/net-tools-2.0-0.25.20131004git.el7.x86_64.rpm: [Errno 14]
FTP Error 550 - Server denied you to change to the given directoryA
正在尝试其它镜像。
(2)其他主机配置了此yum仓库执行Yum安装命令提示
failure: repodata/repomd.xml from c7-media: [Errno 256] No more mirrors to try.
ftp://192.168.188.2/pub/repodata/repomd.xml: [Errno 14] curl#7 - "Failed connect to
192.168.188.2:21; 没有到主机的路由"
ftp://192.168.188.2/pub/repodata/repomd.xml: [Errno 14] curl#7 - "Failed connect to
192.168.188.2:21; 没有到主机的路由"
ftp://192.168.188.2/pub/repodata/repomd.xml: [Errno 14] curl#7 - "Failed connect to
192.168.188.2:21; 没有到主机的路由"
(3) 在浏览器中访问配置的yum镜像仓库地址
ftp://192.168.188.2/pub/
发现没有展现所有的文件夹内容,仅有一个文件夹:目录repodata
2.排查问题思路
(1)确认ftp服务是否正常运行
systemctl status vsftpd
服务器正常。
(2) 确认/var/ftp/pub路径下的文件是否完整
文件内容正常,和光盘进行对比。
ll /var/ftp/pub
(3)确认/etc/yum.repos.d/CentOS-Media.repo文件是否配置错误
cat /etc/yum.repos.d/CentOS-Media.repo
没有任何错误。
(4)排查服务器层防护墙及selinux
防火墙
systemctl status firewalld
systemctl status iptables
防火墙都是关闭的
查看selinux
cat /etc/sysconfig/selinux
这是不是disabled写错了,写成了disable???
(5) 修改selinux配置文件,重启机器,然后在测试。
(6) 再次测试
仍然报错:[Errno 14] FTP Error 550 - Server denied you to change to the given directoryA
(7) 好像忘记了重新生成源文件内容
执行命令
createrepo .
(8) 仍然不行
(9) 突然想起来在浏览器访问地址时仅仅显示仅有一个文件夹:目录repodata,难道是在未修改selinux的配置时复制的光盘镜像文件存在问题?
(10)于是,删除/var/ftp/pub文件夹下的所有文件。
确保是在pub路径下,否则执行了删除命令后后果自负!!!!!
cd /var/ftp/pub/
rm -rf *
(11) 再次复制光盘内容至/var/ftp/pub/路径下
cp -a /mnt/* /var/ftp/pub
cd /var/ftp/pub/
ls –rtlh
(12) 重新创建源配置内容
cd /var/ftp/pub/
createrepo .
(13)可能还会出现无法使用的情况,注意下pub下文件夹的权限
cd /var/ftp/
chmod 755 -R pub