如何获取以前的日期文件并将 ls 输出传递给 gawk 中的数组
how to get previous date files and pass ls output to array in gawk
我生成了如下所示的日志文件,我需要每天 运行 脚本列出它们,然后做两件事。
1-获取以前/昨天的文件并将它们传输到x服务器
2- 获取超过一天的文件并将它们传输到 y 服务器
文件如下所示,我正在尝试下面的代码但无法正常工作。
我们如何将 ls -altr
输出传递给 gawk
?我们可以构建一个如下所示的关联数组吗?
array[index]=ls -altr | awk '{print ,,}'
代码我正在尝试检索以前的日期文件,但无法正常工作
previous_dates=$(date -d "-1 days" '+-%d')
ls -altr |gawk '{if ( !=previous_dates ) print }'
-r-------- 1 root root 6291563 Jun 22 14:45 audit.log.4
-r-------- 1 root root 6291619 Jun 24 09:11 audit.log.3
drwxr-xr-x. 14 root root 4096 Jun 26 03:47 ..
-r-------- 1 root root 6291462 Jun 26 04:15 audit.log.2
-r-------- 1 root root 6291513 Jun 27 23:05 audit.log.1
drwxr-x---. 2 root root 4096 Jun 27 23:05 .
-rw------- 1 root root 5843020 Jun 29 14:57 audit.log
对于昨天修改的select个文件,您可以使用
find . -daystart -type f -mtime 1
对于 select 旧文件,您可以使用
find . -daystart -type f -mtime +1
例如, 可能仅向 select 文件添加 -name
测试,例如 audit.log*
。然后您可以使用 xargs
来处理文件,例如
find . -daystart -type f -mtime 1 | xargs -n 1 -I{} scp {} user@server
我生成了如下所示的日志文件,我需要每天 运行 脚本列出它们,然后做两件事。
1-获取以前/昨天的文件并将它们传输到x服务器 2- 获取超过一天的文件并将它们传输到 y 服务器
文件如下所示,我正在尝试下面的代码但无法正常工作。
我们如何将 ls -altr
输出传递给 gawk
?我们可以构建一个如下所示的关联数组吗?
array[index]=ls -altr | awk '{print ,,}'
代码我正在尝试检索以前的日期文件,但无法正常工作
previous_dates=$(date -d "-1 days" '+-%d')
ls -altr |gawk '{if ( !=previous_dates ) print }'
-r-------- 1 root root 6291563 Jun 22 14:45 audit.log.4
-r-------- 1 root root 6291619 Jun 24 09:11 audit.log.3
drwxr-xr-x. 14 root root 4096 Jun 26 03:47 ..
-r-------- 1 root root 6291462 Jun 26 04:15 audit.log.2
-r-------- 1 root root 6291513 Jun 27 23:05 audit.log.1
drwxr-x---. 2 root root 4096 Jun 27 23:05 .
-rw------- 1 root root 5843020 Jun 29 14:57 audit.log
对于昨天修改的select个文件,您可以使用
find . -daystart -type f -mtime 1
对于 select 旧文件,您可以使用
find . -daystart -type f -mtime +1
例如, 可能仅向 select 文件添加 -name
测试,例如 audit.log*
。然后您可以使用 xargs
来处理文件,例如
find . -daystart -type f -mtime 1 | xargs -n 1 -I{} scp {} user@server