cron无法在Shell中运行命令

时间:2018-09-05 12:00:10

标签: shell cron postgresql-9.5

我正在尝试从bash(RHEL 7.4)运行以下cron作业,这是我可以编写的入门级Postgres DB备份脚本:

    #!/bin/bash

# find latest file
echo $PATH
cd /home/postgres/log/

echo "------------ backup starts-----------"

latest_file=$( ls -t | head -n 1 | grep '\.log$' )

echo "latest file"
echo $latest_file

# find older files than above

echo "old file"

old_file=$( find . -maxdepth 1 -name "postgresql*" ! -newer $latest_file -mmin +1 )

if [ -f "$old_file" ]
        then
        echo $old_file

        file_name=${old_file##*/}

        echo "file name"
        echo $file_name

        # zip older file

        tar czvf /home/postgres/log/archived_logs/$old_file.gz  /home/postgres/log/$file_name

        rm -rf /home/postgres/log/$file_name

else
        echo "no old file found"
fi

上面的命令从shell正确运行并正在执行预期的任务。它还回显了所需的信息。 我已经使用crontab -e

和postgres用户(不是root)安装了它
*/2 * * * * /home/postgres/log/rollup.sh >> /home/postgres/log/logfile.csv 2>&1

它是正确的回显(我已经嵌入了要测试的文本),但是没有输出到.csv的命令。虽然这不是我的关注。我担心的是,它根本没有运行这几个命令。

我通过将日志文件(.csv)路径更改为/ dev / null进行了另一次尝试,并且正在执行Shell脚本中的命令。我没有得到我在这里想念的东西。

.csv文件具有777的权限,仅供测试

0 个答案:

没有答案