移动特定目录中的特定文件

移动特定目录中的特定文件

我的目录中有一些文件/应用程序/我/all_off哪个文件名如下:

  • 访问日志
  • 报警批次
  • 警报服务根
  • db_wrapper_access_log
  • db_wrapper_api_service
  • 莫队列工作
  • mt_push_api_service
  • mtqueue 作业
  • nbp_请求_处理程序
  • 配置文件_api_服务
  • 促销 API 服务
  • 队列服务根

然后,它用扩展名格式化文件。日志他们每天生成的格式为: xxxx.log.20190101

因此,我想归档并移动所有这些文件(最后生成的文件是在前一天)进入/应用程序/我/all_off/备份/每天中午 12 点。但我想备份特定目录中的文件(根据他们的名字)例如:

  • /app/me/all_off/backup/access_log/access_log.log.2019010

我的情况有解决问题的办法吗?

我正在使用 Shellscript 来存档并移动该文件,但它只是移入/应用程序/我/all_off/备份/。下面是我的 Shellscript :

(#!/bin/bash ----> "(" 只是备注

日期1=date -d "yesterday" +%Y%m%d

日期2=date -d "yesterday" +%Y-%m-%d

logPathMove=$logPath"备份/"

logPath='/app/me/all_off/'

全部=ls -ltrh *log* *log | awk -F ' ' '{print$9}' | awk -F '.' '{print$1}' | sort | uniq -c | awk -F ' ' '{print$2}'

cd ${logPath}

gzip -9 *.${date1}

gzip -9 *.${date1}.log -------->另一种格式的文件名

gzip -9 *log.${date2}.log --------> 另一种格式的文件名

cd {日志路径}

对于 *.gz 中的 i;执行 mv ${i} ${logPathMove};完毕

答案1

确切地弄清楚你想做什么有点困难。不过,这里有一个帮助调试 shell 脚本的通用技巧:将此行放在脚本的开头:

set -x

所以如果脚本是:

b=1
echo a $b

运行它会产生

a 1
$ 

而如果你做到了

set -x
b=1
echo a $b

它产生

+ b=1
+ echo a 1
a 1
$

换句话说,您将看到正在执行哪些命令以及变量替换和输出。

相关内容