我新建了一个/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文件夹,下面的日期文件夹创建失败,这是为什么阿,求大神帮忙解答,感激不禁。
后面的时间文件夹变量写的有问题,date后面有空格如:
$(date +%Y)
谢谢邀请,你创建的logs文件夹是否有写入权限啊!你用命令查看一下是否有
目前来看, 最大可能是因为权限问题
测试环境为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
如果能够提供更多的信息,也许可以帮得上忙