```sh ╔═╗ ╦ ╦ ╔═╗ ╔═╗ ╦╔═ ╔═╗ ╦ ╦ ╔═╗ ║ ╠═╣ ║╣ ║ ╠╩╗ ╠╣ ║ ║ ║╣ ╚═╝ ╩ ╩ ╚═╝ ╚═╝ ╩ ╩ ╚ ╩ ╩═╝ ╚═╝ ```
A command line tool that logs the checksum and last 50 lines of each file in a folder written in rust
> I use this to verify some backblaze log files and to see how things are changing that may cause unwanted safety freezes. ## Install You can install this tool via the crates cargo ecosystem: ```sh λ cargo install checkfile ``` ## Usage You can `cd` into a folder and just run the tool with its defaults: ```sh λ cd path/to/folder λ checkfile The log for 11 files was written successfully to ./checkfile.log Finished in 1.30ms ``` This will create a file called `checkfile.log` that contains the name, checksum and last 50 lines _(in reverse order)_ of each file found in the current directory. The format of the `checkfile.log` is as follows: ``` ## 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 <-- ``` ## Scheduling I use [`a cron job`](https://www.man7.org/linux/man-pages/man5/crontab.5.html) to schedule `checkfile` to run every 6 hours and add the log to a folder. If something is wrong with the backblaze backup I can go into that folder and introspect what may have happened. The `checkfile.sh` file: ```sh #!/bin/sh checkfile -o ~/Desktop/logs/checkfile-$(date +%s).log /Library/Backblaze.bzpkg/bzdata/bzbackup/bzdatacenter ``` And the cron job: ```sh λ crontab -l 0 */6 * * * /bin/sh ~/checkfile.sh >> ~/Desktop/logs/error.log ``` ### `