shell - linux sh文件结合crontab问题

 V铿锵花木兰V 发布于 2022-10-31 10:03

我新建了一个/usr/local/nginx/cut_nginx_log.sh文件命令如下:

!/bin/bash 这脚本必须在每天的00:00运行 Nginx日志文件的存放路径

save_path_log='/logs/nginx/logs' #日志将要存放的路径
nglogs='/usr/local/nginx/logs' #nginx的日志路径

mkdir -p $save_path_log/$(date+%Y)/$(date+%m)

然后我开启了crontab 以每五分钟执行这个sh文件,但是只创建了/logs/nginx/logs文件夹,下面的日期文件夹创建失败,这是为什么阿,求大神帮忙解答,感激不禁。

3 个回答
  • 后面的时间文件夹变量写的有问题,date后面有空格如:
    $(date +%Y)

    2022-10-31 22:51 回答
  • 谢谢邀请,你创建的logs文件夹是否有写入权限啊!你用命令查看一下是否有

    2022-10-31 22:51 回答
  • 目前来看, 最大可能是因为权限问题
    测试环境为RHEL7,内容如下:
    root用户下

    crontab -e

    内容为

    */1 * * * * source /root/test.sh

    结果能正常创建文件夹
    然后再用crontab -e删除上述一行, 删除/logs文件夹

    rm -rf /logs

    切换用户到test1, 执行几乎同样的操作

    su test1
    cd
    vim test.sh
    crontab -e
    */1 * * * * source /home/test1/test.sh
    exit

    此时回到root用户,使用journalctl查看日志可以看到

    Sep 18 17:01:01 rhel7u2cli CROND[3641]: (test1) CMD (source /home/test1/test.sh)

    但是并无错误输出也没有成功创建/logs文件夹
    此时

    [root@localhost /]# su test1
    [test1@rhel7u2cli /]$ cd
    [test1@rhel7u2cli ~]$ source test.sh 
    mkdir: cannot create directory ‘/logs’: Permission denied

    如果能够提供更多的信息,也许可以帮得上忙

    2022-10-31 22:51 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有