#文件校验和 #校验和 #日志 #命令行工具 #日志文件 #命令行 #尾随

app checkfile

记录文件夹中每个文件的校验和及最后 50 行的命令行工具

5 个稳定版本

1.3.0 2023 年 9 月 19 日
1.2.0 2023 年 9 月 3 日
1.1.1 2023 年 9 月 3 日
1.0.0 2023 年 8 月 31 日

#763命令行实用工具

GPL-3.0 或更高版本

23KB
104

 ╔═╗ ╦ ╦ ╔═╗ ╔═╗ ╦╔═ ╔═╗ ╦ ╦   ╔═╗
    ╠═╣ ║╣  ║   ╠╩╗ ╠╣  ║ ║   ║╣
 ╚═╝ ╩ ╩ ╚═╝ ╚═╝ ╩ ╩ ╚   ╩ ╩═╝ ╚═╝

checkfile badge

用 Rust 编写的记录文件夹中每个文件的校验和及最后 50 行的命令行工具

我使用这个工具来验证一些 Backblaze 日志文件,并查看可能引起不期望的安全冻结的事情。

安装

您可以通过 crates cargo 生态系统安装此工具

λ cargo install checkfile

用法

您可以将 cd 进入一个文件夹,然后直接使用默认设置运行工具

λ cd path/to/folder
λ checkfile
The log for 11 files was written successfully to ./checkfile.log
Finished in 1.30ms

这将创建一个名为 checkfile.log 的文件,其中包含当前目录中找到的每个文件的名称、校验和以及最后 50 行 (按逆序)

checkfile.log 的格式如下

## NAME ./your_file1.ext
## HASH 54d0aee5a905190551f607309d162ff7d970f845ac646da13469da004d8c8b63
-->
last line
second last line
third last line
[...]
contents of file
<--
## NAME ./your_file2.ext
## HASH 895344059424ed7f5b1946d80c0e2581e30fc2032584db6dc36c608849e6f165
-->
contents of file
[...]
contents of file
<--
## NAME ./your_file3.ext
## HASH 104f62f4e75447518c3de21b9de71e757c0b7d719de77d36e81a024394777a53
-->
contents of file
[...]
contents of file
<--

调度

我使用 cron 作业 来安排每 6 小时运行 checkfile 并将日志添加到一个文件夹中。如果 Backblaze 备份有问题,我可以进入该文件夹并检查可能发生了什么。

checkfile.sh 文件

#!/bin/sh

checkfile -o ~/Desktop/logs/checkfile-$(date +%s).log /Library/Backblaze.bzpkg/bzdata/bzbackup/bzdatacenter

以及 cron 作业

λ crontab -l

0 */6 * * * /bin/sh ~/checkfile.sh >> ~/Desktop/logs/error.log

<PATH>

类型: <path>
默认值: .

设置您要运行 checkfile 的目录。

λ checkfile /path/to/folder

-o, --output <PATH>

类型: <path>
默认值: ./checkfile.log

设置此输出文件名和路径。

λ checkfile -o /path/to/folder/yourfile.log

💡 注意:此命令不会创建不存在的文件夹,因此路径必须存在

-l, --line <NUMBER>

类型: <number>
默认值: 50

为每个检查的文件设置应包含到日志文件中的行数。

λ checkfile -l 10

-d, --dotfiles

类型: <bool>
默认值: false

设置为在日志中包含点文件。

λ checkfile -d

💡 注意:如果checkfiles遇到二进制文件,它将尝试读取它,并使用[- 二进制数据 -]标记它无法读取的行

-r, --reverse

类型: <bool>
默认值: false

反转输出行,使其看起来与文件相同(与tail的行为一致)

λ checkfile -r

不带--reverse标志的输出文件

## NAME ./your_file.ext
## HASH 54d0aee5a905190551f607309d162ff7d970f845ac646da13469da004d8c8b63
-->
last line
second last line
third last line
<--

带有--reverse标志的输出文件

## NAME ./your_file.ext
## HASH 54d0aee5a905190551f607309d162ff7d970f845ac646da13469da004d8c8b63
-->
third last line
second last line
last line
<--

比较,./your_file.ext的内容

third last line
second last line
last line

许可证

版权所有 (c) 2023 Dominik Wilkowski。许可协议为GNU GPL-3.0-or-later

依赖项

~3.5–9.5MB
~84K SLoC