记一次crontab定时任务配置后脚本执行不成功且日志无报错的排查【处理postfix报错、以及脚本环境配置问题,已解决】

艺帆风顺 发布于 2025-04-02 14 次阅读


一、问题背景    在某项目上,配置异地备份脚本,用于将本服务器数据同步到另一服务器。    crontab 任务如下:

55 09  * * * cd /temp/YLMonitor/ && ./mysql_backup_cloud.sh

    采取手动方式可以正常执行成功,配置脚本后发现未执行。二、修复postfix服务起初判断和postfix服务存在关系,日志中一直存在报错:

    Jan 24 09:06:01 localhost CROND[185965]: (root) CMD (sh /temp/YLMonitor/mysql_backup_cloud.sh)Jan 24 09:06:01 localhost CROND[185963]: (root) MAIL (mailed 69 bytes of output but got status 0x007f#012)
    修改postfix配置文件:注释#inet_interfaces = localhost

    打开inet_protocols = all这一行

    修改后重启postfix服务一直无法正常启动成功:报:libmysqlclient.so.18: cannot open shared object file
       loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No suche loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No sucading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such fi

      判断缺失libmysqlclient.so.18文件。

        [root@localhost mysql]# cat /etc/ld.so.confinclude ld.so.conf.d/*.con[root@localhost mysql]# ls /etc/ld.so.conf.d/dyninst-x86_64.conf                libiscsi-x86_64.conf  qt-x86_64.confkernel-3.10.0-514.el7.x86_64.conf  mysql-x86_64.conf     xulrunner-64.conf
          [root@localhost mysql]# cat /etc/ld.so.conf.d/mysql-x86_64.conf /usr/lib64/mysql
          发现最开始只有这俩文件,尝试复制一份更名为libmysqlclient.so.18未解决。从另一台服务器拷贝libmysqlclient.so.18文件到该目录,并修改权限,重新建立软链接并加载。

          chmod 755 libmysqlclient.so.18*

            [root@localhost mysql]# ldconfigldconfig: /usr/lib64/mysql/libmysqlclient.so.18 不是符号连接[root@localhost mysql]# readlink libmysqlclient.so.20  ##查看链接的原始文件libmysqlclient.so.20.3.15[root@localhost mysql]# rm libmysqlclient.so.18rm:是否删除普通文件 "libmysqlclient.so.18"?y[root@localhost mysql]# ln -s libmysqlclient.so.18.0.0 libmysqlclient.so.18  #重新建立链接c[root@localhost mysql]# ldconfig

            重启postfix服务,发现已经恢复正常:

            三、脚本环境问题

                判断可能和系统环境变量有关:

                加入:source /etc/profile 指令

                指定该命令的原始路径 :/usr/local/bin/xxxxxx 

              [root@localhost YLMonitor]# whereis xxxxxx xxxxxx : /usr/local/bin/xxxxxx 

                  再次加入定时任务验证,发现已经成功解决。