文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux操作系统脚本格式问题导致脚本无法执行怎么办

2023-06-04 15:01

关注

Linux操作系统脚本格式问题导致脚本无法执行怎么办,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

    最近,在做一个mysql的mgr+proxysql的集群初始化工作。在proxysql部署完成,开启proxysql的自动探测mysql集群运行状态时,proxysql后台日志报错提示:无法执行脚本,脚本文件或路径不存在,但是通过linux的命令ls -l查看报错的文件路径是正确的,见了鬼。无奈之下,手工运行脚本也报错命令或文件不存在:-bash: ./gr_sw_mode_checker.sh: /bin/bash^M: bad interpreter: No such file or directory。但是,看到了^M,太熟悉了,vi查看了下文件的格式,竟然是dos格式的,然后格式化成unix格式的,proxysql重于能调取到脚本,简直要泪奔的感觉。

    问题处理过程记录如下,以待后查:

    1、proxysql开启scheduler后,后台日志提示调取脚本失败

[root@mmgrpro1 proxysql]# tail -f proxysql.log 

2018-08-01 00:17:28 ProxySQL_Admin.cpp:7947:run_once(): [ERROR] Scheduler: Failed to run /var/lib/proxysql/gr_sw_mode_checker.sh

execve(): No such file or directory

2018-08-01 00:17:31 ProxySQL_Admin.cpp:7947:run_once(): [ERROR] Scheduler: Failed to run /var/lib/proxysql/gr_sw_mode_checker.sh

execve(): No such file or directory

2018-08-01 00:17:34 ProxySQL_Admin.cpp:7947:run_once(): [ERROR] Scheduler: Failed to run /var/lib/proxysql/gr_sw_mode_checker.sh

execve(): No such file or directory

    2、linux操作系统层查看脚本所在路径是否存在

[root@mmgrpro1 proxysql]# ls -l /var/lib/proxysql/gr_sw_mode_checker.sh

-rwxr-xr-x 1 mysql mysql 8292 Jul 31 15:47 /var/lib/proxysql/gr_sw_mode_checker.sh

[root@mmgrpro1 proxysql]#

到这,事情陷入僵局,脚本明明存在,但是proxysql却说找不到脚本。在此之前发生过,如果脚本没有执行权限时,

proxysql会报权限拒绝:

2018-07-31 16:57:39 ProxySQL_Admin.cpp:7947:run_once(): [ERROR] Scheduler: Failed to run /var/lib/proxysql/gr_sw_mode_checker.sh

execve(): Permission denied

2018-07-31 16:57:44 ProxySQL_Admin.cpp:7947:run_once(): [ERROR] Scheduler: Failed to run /var/lib/proxysql/gr_sw_mode_checker.sh

execve(): Permission denied

2018-07-31 16:57:48 MySQL_Monitor.cpp:1362:monitor_ping(): [ERROR] Server 192.168.10.131:3306 missed 3 heartbeats, shunning it and killing all the connections

2018-07-31 16:57:49 ProxySQL_Admin.cpp:7947:run_once(): [ERROR] Scheduler: Failed to run /var/lib/proxysql/gr_sw_mode_checker.sh

execve(): Permission denied

    3、自我反省,将实施方案看了无数变,又对照部署环境检查了好几遍,没发现任何异常,proxysql就是调取脚本失败,

实在是无奈呀,自己手工执行脚本,奇怪的是bash也报文件不存在:

[root@mmgrpro1 proxysql]# ./gr_sw_mode_checker.sh 

-bash: ./gr_sw_mode_checker.sh: /bin/bash^M: bad interpreter: No such file or directory

[root@mmgrpro1 proxysql]# ls -l /var/lib/proxysql/gr_sw_mode_checker.sh

-rwxr-xr-x 1 mysql mysql 8292 Jul 31 15:47 /var/lib/proxysql/gr_sw_mode_checker.sh

[root@mmgrpro1 proxysql]# 

但是,我看到了熟悉的面孔/bin/bash^M,终于找到了问题的症结,原本我是从网页上复制下来的脚本代码用UE编辑的,

脚本格式是DOS格式的,在unix或linux平台上需要转换成unix格式的。

    4、问题处理,使用vi编辑器,格式化脚本

--vi 脚本名称,输入shift+:,然后输入set ff?回车,查看脚本格式

Linux操作系统脚本格式问题导致脚本无法执行怎么办

--set ff?回车后显示是dos格式Linux操作系统脚本格式问题导致脚本无法执行怎么办

--vi下,将脚本从dos转换成unix,输入set ff=unix回车,然后wq保存退出

Linux操作系统脚本格式问题导致脚本无法执行怎么办

    5、脚本保存后,proxysql调取脚本成功,虽然还有脚本相关的异常,但是不报:no such file or directory了

Linux操作系统脚本格式问题导致脚本无法执行怎么办

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯