这次部署redis遇到个问题,执行sh文件来启动redis,结果报配置文件无法打开。
![]()
用vi打开sh文件反复检查过路径是对的。
![]()
然后手敲路径执行,运行正常;

直接执行sh文件不行:反复修改执行都没效果。
最后停下来复盘最近做了什么,考虑到这个文件是ftp下载下来的再进行编辑,当时还用了binary命令,下载redis安装包。
我考虑是不是这个sh文件是二进制的,而不是纯文本,所以才引起这个执行失败现象。
根据这个依据,马上删除 原来的sh文件,重新echo新建sh文件,再执行运行正常。
![]()
各位,这个是ftp下载编码引起的问题吗?
这个是我本地模拟上传的原文 用十六进制进制查看内容的截图:

这是我模拟当时ftp用binary命令下载文件 用十六进制进制查看内容的截图:

只是末尾部多了个0D,这个是windows格式的文本。用vi是不易看出来差别的,翻车在这里。
改进:
在linux下用hexdump 查看二进制文件
hexdump -C startRedis.sh
起到一样的效果
本文记录了通过FTP下载并执行Redis启动脚本时遇到的问题及解决过程。问题表现为脚本执行失败,经排查发现是由于FTP下载时采用binary模式导致文件格式不正确所致。

6147

被折叠的 条评论
为什么被折叠?



