bash – 用于每天创建文件夹的shell脚本,带有时间戳和推送时间戳生成的日志

前端之家收集整理的这篇文章主要介绍了bash – 用于每天创建文件夹的shell脚本,带有时间戳和推送时间戳生成的日志前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个cron作业,每30分钟运行一次,生成带有时间戳的日志文件,如下所示:
  1. test20130215100531.log,test20130215102031.log

我想每天创建一个文件夹,其中包含日期时间戳,并在生成时将日志文件推送到相应的日期文件夹中.

我需要在AIX服务器上用bash实现这一点.

也许您正在寻找这样的脚本:
  1. #!/bin/bash
  2.  
  3. shopt -s nullglob # this line is so that it does not compain when no logfiles are found
  4. for filename in test*.log; do # Files considered are the ones startign with test and ending in .log
  5. foldername=$(echo "$filename" | awk '{print (substr($0,5,8));}'); # The foldername is characters 5 to 13 from the filename (if they exist)
  6. mkdir -p "$foldername" # -p so that we dont get "folder exists" warning
  7. mv "$filename" "$foldername"
  8. echo "$filename $foldername" ;
  9. done

我只测试了你的样本,所以在使用包含重要内容的目录之前进行适当的测试.

编辑以回应评论

将原始脚本更改为:

  1. foldername=$(date +%Y%m%d)
  2. mkdir -p /home/app/logs/"$foldername"
  3. sh sample.sh > /home/app/logs/"$foldername"/test$(date +%Y%m%d%H%M%S).log

或者它在其他地方创建目录,只需执行以下操作:

  1. sh sample.sh > /home/app/logs/$(date +%Y%m%d)/test$(date +%Y%m%d%H%M%S).log

猜你在找的Bash相关文章