写了一个定时采集数据的php脚本,用crontab 执行php脚本无效

  • 到了脚本设定的定时执行时间之后,查看本地的文件输出没有内容
  • 首先是断定没有执行脚本
  • 然后写了一个简单的时间输出脚本 /bin/date >> 输出文件的全路径
  • 发现crontab是正常执行的
  • 全局搜索了一下 php输出的日志文件 find / -name 日志文件
  • 发现在root目录下
  • 结论,在php中输出./xx 这样的相对路径,在命令行里面的时候,是相对于脚本所在目录
  • 在crontab中执行的时候,是相对用户的根目录 如 /root/日志文件
  • 解决方法,php中进行写文件的时候,路径名称用全路径即可。