cron 作业的 Curl 请求不起作用,但可以手动执行

cron 作业的 Curl 请求不起作用,但可以手动执行

我有一个每分钟运行一次的 cron 作业,它发出一个 curl 请求,并且我已经在 syslogs 上使用 grep 进行了验证。

但是 curl 不知为何没有发生,而且我在 cron 中有一个小小的 echo 语句,我将其登录到某个文件中。即使该日志没有打印,但在手动运行我的 shell 文件时它可以工作。

有人可以帮我解决这个问题吗?

更新:这是我正在使用的 shell 文件

#This file sends the changed files to our server
#var=$(ls ~/Downloads | grep -v "^d")
#files=""
#for f in $(ls ~/OurDrive | grep -v ^d)
#       do
#               
#               files+="$f"","
#               
#       done 
files=()

cd /home/user/OurDrive
for file in *; do
    [[ -d $file ]] && continue
    files+=( "$file" )
done


comma_separated=$(IFS=,; echo "${files[*]}")
echo "$comma_separated" 
curl --data "file_list=$comma_separated&username=${USER}" http://localhost:8084/url/add.do
echo "done"> /home/user/Desktop/log.txt

答案1

添加舍邦线并明确使用 bash (在 Ubuntu 上 /bin/sh 链接到短跑)。

#!/usr/bin/env bash

或者

#!/bin/bash

第一个将在环境中搜索bash

相关内容