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 在 命令行实用工具
23KB
104 行
╔═╗ ╦ ╦ ╔═╗ ╔═╗ ╦╔═ ╔═╗ ╦ ╦ ╔═╗
║ ╠═╣ ║╣ ║ ╠╩╗ ╠╣ ║ ║ ║╣
╚═╝ ╩ ╩ ╚═╝ ╚═╝ ╩ ╩ ╚ ╩ ╩═╝ ╚═╝
用 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