Linux-ls If 语句

标签 linux shell date if-statement ls

我正在寻找 if 语句。因此,当我运行脚本时,它会为我提供带有日期的备份列表。 if语句是,如果最近2天没有备份则回显“没有最近的备份”。

当我 ls -lrth 时:

-rw-r--r--。 1 nfsnobody nfsnobody 1.5G 8月15日12:02

-rw-r--r--。 1 nfsnobody nfsnobody 1.5G 8月16日 01:30

如果日期早于 2 天,则回显“”

最佳答案

BACKUP_DIRECTORY="basename" #basename of the directory 

MATCHES=$(find "$BACKUP_DIRECTORY" -maxdepth 1 -type f -mtime -2 -ls | wc -l) 

if [ $MATCHES -eq 0 ]; then
    echo "CRITICAL: No files older than 2 days yet in directory $*"
    exit 2
else
    echo "OK: Found $MATCHES file(s) of the last 2 days in ${BACKUP_DIRECTORY}"
    exit 0
fi

要获取最近 2 天的备份列表,请使用:

查找“$BACKUP_DIRECTORY”-maxdepth 1 -type f -mtime -2 -ls

  • -最大深度 1。指定深度目录遍历。我们不想在子目录中向下移动超过 1 层。
  • -type f 表示仅查找文件(不查找目录)。
  • -mtime -2 表示文件的存在时间小于 2 天。

wc -l 统计找到的文件数量

关于Linux-ls If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39054925/

相关文章:

javascript - MomentJS 倒计时与 diff

excel - 以秒为单位的日期和时间值之间的差异 (Excel)

c - POSIX_FADV_DONTNEED 是否从 Linux 上的其他进程中删除脏页?

linux -/proc/self 和/proc/$$ 之间有什么区别?

java - 无法使用 shell 脚本更改我的 Java .properties 文件

linux - 如何检测shell脚本输出的行号

Java - GAE 数据存储以特定格式保存日期

c++ - arm gcc5 的交叉编译 - 正确使用 memcpy

linux - 对话框与 '\n'

linux - 如何在字符串的第一次出现和最后一次出现之间裁剪非常大的文本文件? (Linux)