From a662387d2a1512b7a1ccb2837559272e8009893e Mon Sep 17 00:00:00 2001 From: Andrea Mazzoleni Date: Fri, 12 Dec 2025 09:38:54 +0100 Subject: [PATCH] More documentation for the log file --- cmdline/rehash.c | 3 + snapraid_log.1 | 478 ++++++++++++++++++++++++++++++++++++++++++----- snapraid_log.d | 345 +++++++++++++++++++++++++++++----- snapraid_log.txt | 365 +++++++++++++++++++++++++++++++----- 4 files changed, 1064 insertions(+), 127 deletions(-) diff --git a/cmdline/rehash.c b/cmdline/rehash.c index 6b5376bf..9a8a6a37 100644 --- a/cmdline/rehash.c +++ b/cmdline/rehash.c @@ -38,6 +38,7 @@ void state_rehash(struct snapraid_state* state) /* check if a rehash is already in progress */ if (state->prevhash != HASH_UNDEFINED) { /* LCOV_EXCL_START */ + log_tag("summary:exit:already_in_progress\n"); log_fatal("You already have a rehash in progress.\n"); exit(EXIT_FAILURE); /* LCOV_EXCL_STOP */ @@ -45,6 +46,7 @@ void state_rehash(struct snapraid_state* state) if (state->hash == state->besthash) { /* LCOV_EXCL_START */ + log_tag("summary:exit:not_required\n"); log_fatal("You are already using the best hash for your platform.\n"); exit(EXIT_FAILURE); /* LCOV_EXCL_STOP */ @@ -94,5 +96,6 @@ void state_rehash(struct snapraid_state* state) msg_status("A rehash is now scheduled. It will take place progressively in the next\n"); msg_status("'sync' and 'scrub' commands. You can check the rehash progress using the\n"); msg_status("'status' command.\n"); + log_tag("summary:exit:scheduled\n"); } diff --git a/snapraid_log.1 b/snapraid_log.1 index e302ecca..a73dacab 100644 --- a/snapraid_log.1 +++ b/snapraid_log.1 @@ -75,7 +75,7 @@ These tags report the memory usage and global configuration after scanning the disk and reading the list of files. .TP .B conf:file: -Configuration file loaded (escaped string). +Configuration file loaded (escaped). .TP .B conf:missing: Operating without a configuration file. @@ -117,16 +117,16 @@ index 0. A split parity configuration distributes parity blocks across multiple files. .HP 4 .I -The escaped path. +The path (escaped). .PD .RE .TP .B pool: -The configured dir to the pool mount point (escaped string). +The configured dir to the pool mount point (escaped). This is the optional mount point for the \'pool\' feature. .TP .B share: -The configured dir to the pool mount point (escaped string). +The configured dir to the pool mount point (escaped). This is the optional mount point for the \'share\' feature. .TP .B autosave: @@ -142,7 +142,7 @@ If the no\-hidden filter is enabled, meaning hidden files/directories (starting with \'.\') are excluded from the array. .TP .B content: -The absolute path to a content file being used (escaped string). +The absolute path to a content file being used (escaped). Content files store the metadata (like file hashes and timestamps) for the array. .TP @@ -160,7 +160,7 @@ multiple split parity is configured, there is only the index 0. .HP 4 .I -The escaped path. +The path (escaped). .HP 4 .I The UUID of the partition containing the path. @@ -223,7 +223,7 @@ Name of the data disk. .HP 4 .I Path to the file/link/dir relative to the disk mount -(escaped string). +(escaped). .PD .RE .TP @@ -247,10 +247,10 @@ that only updates the path metadata without re\-hashing blocks. .PD 0 .HP 4 .I -The old path to the file (escaped string). +The old path to the file (escaped). .HP 4 .I -The new path to the file (escaped string). +The new path to the file (escaped). .PD .RE .TP @@ -265,7 +265,7 @@ efficient operation that avoids re\-hashing all blocks. The original file\'s disk. .HP 4 .I -The original file\'s location (escaped string). +The original file\'s location (escaped). .PD .RE .TP @@ -487,13 +487,15 @@ The configured name of the disk. The unique device ID (uint64). .HP 4 .I -The current temperature read from the disk in degrees Celsius. +The current temperature read from the disk in degrees +Celsius. .PD .RE .TP .B thermal:highest: Logs the highest temperature observed among all monitored disks -in the current measurement cycle. This is used for thermal throttling. +in the current measurement cycle. This is used for thermal +throttling. .RS 4 .PD 0 .HP 4 @@ -547,19 +549,20 @@ The configured name of the disk. The unique device ID (uint64). .HP 4 .I -The heating rate constant, $k$ (double). +The heating rate constant, k (double). .HP 4 .I -The ambient temperature, $T_{\\text{ambient}}$ (double). +The ambient temperature, T_ambient (double). .HP 4 .I -The estimated steady\-state temperature, $T_{\\text{steady}}$ (double), which is the maximum expected temperature of the disk. +The estimated steady\-state temperature, T_steady (double), +which is the maximum expected temperature of the disk. .HP 4 .I Root Mean Square Error of the fit (double). .HP 4 .I -Coefficient of determination ($R^2$) of the fit (double). +Coefficient of determination (R^2) of the fit (double). .HP 4 .I Maximum absolute error of the fit (double). @@ -588,20 +591,21 @@ Indicates that the cooldown period is complete, and the disks are being spun back up to resume the operation. .SH COMMAND STATUS TAGS This section describes the tags output with the \`status\` command. -.PP -All tags start with a prefix indicating the context, typically \`summary:\` -for overall statistics or a disk/block context. -.SS General Summary Tags -These tags provide general information about the array configuration and overall state. +.SS Summary Tags +These tags provide general information about the array configuration +and overall state. .TP .B summary:block_size: -The size of a block in bytes. This is the unit of parity protection. +The size of a block in bytes. This is the unit of parity +protection. .TP .B summary:parity_block_count: -The total number of blocks allocated for all parity levels combined. +The total number of blocks allocated for all parity levels +combined. .TP .B summary:parity_block_total:: -Total blocks available for a specific parity level (e.g., \`parity\`, \`2\-parity\`). +Total blocks available for a specific parity level (e.g., +\`parity\`, \`2\-parity\`). .TP .B summary:parity_block_free:: Free blocks available for a specific parity level. @@ -645,16 +649,19 @@ The current hash algorithm in use (e.g., \`sha256\`). The previous hash algorithm used, if a rehash is in progress. .TP .B summary:best_hash: -The best hash algorithm for optimal performance based on system capabilities. +The best hash algorithm for optimal performance based on +system capabilities. .TP .B summary:total_wasted: -Total wasted space (space on data disks exceeding parity capacity) in bytes. +Total wasted space (space on data disks exceeding parity +capacity) in bytes. .TP .B summary:total_used: Total used space by data files in bytes. .TP .B summary:total_free: -Total free space (usable by data) in bytes, limited by parity capacity. +Total free space (usable by data) in bytes, limited by parity +capacity. .TP .B summary:total_use_percent: Overall array use percentage. @@ -715,18 +722,20 @@ Total blocks on the disk (physical size). Free blocks on the disk. .TP .B summary:disk_block_max_by_space:: -Total blocks by disk space (used + free blocks), representing the -physical limit of the disk. +Total blocks by disk space (used + free blocks), representing +the physical limit of the disk. .TP .B summary:disk_block_max_by_parity:: -Total blocks limited by parity space (parity size + min parity free blocks). +Total blocks limited by parity space (parity size + min parity +free blocks). This is the logical limit imposed by the parity files. .TP .B summary:disk_block_max:: Maximum usable blocks (minimum of \`..._by_space\` and \`..._by_parity\`). .TP .B summary:disk_space_wasted:: -Wasted space on the disk in bytes (positive if disk is larger than usable parity space). +Wasted space on the disk in bytes (positive if disk is larger +than usable parity space). .TP .B summary:disk_used:: Used space on the disk in bytes. @@ -1047,7 +1056,8 @@ The file path relative to disk root (escaped). .HP 4 .I A descriptive message indicating the nature of the problem -(e.g., \`Unrecoverable error at position \`, \`Unrecoverable unsynced error at position \`). +(e.g., \`Unrecoverable error at position \`, +\`Unrecoverable unsynced error at position \`). .PD .RE .TP @@ -1076,7 +1086,7 @@ These tags log the final status of files after processing. .TP .B status:unrecoverable:: Indicates that a file has unrecoverable errors and was renamed to -.unrecoverable (in fix mode) or cannot be recovered (in check mode). +\`.unrecoverable\` (in fix mode) or cannot be recovered (in check mode). .RS 4 .PD 0 .HP 4 @@ -1197,6 +1207,382 @@ found. Indicates that errors were found (audit\-only mode). .PD .RE +.SH COMMAND LIST TAGS +This section describes the tags output with the \`list\` command. +.SS List Tags +These tags log details about individual files and links processed during +the listing operation. +.TP +.B file:::::: +Logs details for a regular file found on a disk. +.RS 4 +.PD 0 +.HP 4 +.I +The configured name of the disk. +.HP 4 +.I +The path of the file relative to the disk\'s root +(escaped). +.HP 4 +.I +The size of the file in bytes (uint64). +.HP 4 +.I +The file\'s modification time in seconds since the +Epoch (int64). +.HP 4 +.I +The file\'s modification time nanosecond component +(uint). +.HP 4 +.I +The file\'s inode number (int64). +.PD +.RE +.TP +.B link_::: +Logs details for a link found on a disk. The \`\` component +varies based on the kind of link. +.RS 4 +.PD 0 +.HP 4 +.I +The type of link, one of: \`hardlink\`, \`symlink\`, +\`symdir\` (symlink to a directory), \`junction\` +(Windows\-specific reparse point). +.HP 4 +.I +The configured name of the disk (string). +.HP 4 +.I +The path of the link relative to the disk\'s root +(escaped). +.HP 4 +.I +The target path of the link (escaped). +.PD +.RE +.SS Summary Tags +These tags log final statistics about the entire listing operation. +.TP +.B summary:file_count: +Logs the total number of regular files processed. +.RS 4 +.PD 0 +.HP 4 +.I +The total number of files (uint). +.PD +.RE +.TP +.B summary:file_size: +Logs the total size of all regular files processed. +.RS 4 +.PD 0 +.HP 4 +.I +The cumulative size of all files (uint64, bytes). +.PD +.RE +.TP +.B summary:link_count: +Logs the total number of links processed (hardlinks, symlinks, +symdirs, junctions). +.RS 4 +.PD 0 +.HP 4 +.I +The total number of links (uint). +.PD +.RE +.TP +.B summary:exit:ok +Indicates a successful completion of the listing operation. +Note that if a fatal error happens, the program will abort, +and you won\'t get this tag. +.SH COMMAND DUP TAGS +This section describes the tags output with the \`dup\` command. +.SS Duplicate Tags +These tags log information about detected duplicate files and provide +a summary of the duplicate finding process. The content hash of the +whole file is used to determine duplicates. +.TP +.B dup:::::: dup +Logs the information about a pair of duplicate files found. +The first file listed is the one just processed, and the second +file is the previously processed file that has the same content hash. +.RS 4 +.PD 0 +.HP 4 +.I +The configured name of the disk containing the +newly processed duplicate file. +.HP 4 +.I +The path of the newly processed duplicate file +relative to its disk\'s mount point (escaped). +.HP 4 +.I +The configured name of the disk containing the +previously processed file that is the duplicate +of \`\`. +.HP 4 +.I +The path of the previously processed duplicate file +relative to its disk\'s mount point (escaped). +.HP 4 +.I +The size of the duplicate file in bytes (uint64). This +size corresponds to the file \`\`. +.PD +.RE +.SS Summary Tags +These tags provide a final summary of the duplicate finding process. +.TP +.B summary:dup_count: +Logs the total number of duplicate files found. A file is counted +as a duplicate if its hash matches a hash already seen. +.RS 4 +.PD 0 +.HP 4 +.I +The total count of duplicate files (uint). +.PD +.RE +.TP +.B summary:dup_size: +Logs the total size of all duplicate files found. This size is +the sum of the sizes of all files considered duplicates. +.RS 4 +.PD 0 +.HP 4 +.I +The total size of duplicate files in gigabytes (uint64). +.PD +.RE +.TP +.B summary:exit:unique +Logs the final exit status indicating that no duplicate files were +found. This tag is logged if \`\` is zero. +.TP +.B summary:exit:dup +Logs the final exit status indicating that at least one duplicate +file was found. This tag is logged if \`\` is greater than +zero. +.SH COMMAND POOL TAGS +This section describes the tags output with the \`pool\` command. +.TP +.B summary:link_count: +Logs the total number of links created (symlinks, junctions). +.RS 4 +.PD 0 +.HP 4 +.I +The total number of links (uint). +.PD +.RE +.TP +.B summary:exit:ok +Indicates a successful completion of the pool operation. +Note that if a fatal error happens, the program will abort, +and you won\'t get this tag. +.SH COMMAND REHASH TAGS +This section describes the tags output with the \`rehash\` command. +.SS Summary Tags +These tags provide a final summary of the rehash scheduling process. +.TP +.B summary:exit:scheduled +Logs the final exit status indicating that a rehash operation has +been successfully scheduled. The rehash will be performed +incrementally in future \`sync\` or \`scrub\` commands. +.TP +.B summary:exit:already_in_progress +Logs the final exit status indicating that a rehash is already +in progress and cannot be scheduled again. This causes the +program to exit with a fatal error. +.TP +.B summary:exit:not_required +Logs the final exit status indicating that the current hash +algorithm is already the \`best hash\` for the platform, and thus +a rehash is not required. This causes the program to exit with +a fatal error. +.SH COMMAND SMART TAGS +This section describes the tags output with the \`smart\` command. +.PP +Note that a \`\` may be associated with more \`\`, +in case the logical disk uses more physical disks. In such a case, +you\'ll see multiple tags for the same \`\` but with different +\`\`. +.SS SMART Attributes +Tags logging specific disk identification and raw SMART attribute +values. +.TP +.B smart:: +Logs the start of the SMART report for a device. +.RS 4 +.PD 0 +.HP 4 +.I +The file path of the device (e.g., /dev/sdb). +.HP 4 +.I +The configured name of the disk. +.PD +.RE +.TP +.B attr:::serial: +Logs the disk\'s serial number. +.RS 4 +.PD 0 +.HP 4 +.I +The disk\'s serial number (escaped). +.PD +.RE +.TP +.B attr:::vendor: +Logs the disk\'s vendor string. +.RS 4 +.PD 0 +.HP 4 +.I +The disk\'s vendor identifier (escaped). +.PD +.RE +.TP +.B attr:::model: +Logs the disk\'s model string. +.RS 4 +.PD 0 +.HP 4 +.I +The disk\'s model identifier (escaped). +.PD +.RE +.TP +.B attr:::afr:: +Logs the estimated Annual Failure Rate (AFR) and the +probability of one failure in the next year based on SMART +attributes. The AFR is calculated using the maximum rate +reported by specific SMART attributes (5, 187, 188, 197, 198). +.RS 4 +.PD 0 +.HP 4 +.I +The computed Annual Failure Rate (double). +.HP 4 +.I +The probability of one or more failures in the +next year (double). +.PD +.RE +.TP +.B attr:::size: +Logs the size of the disk. +.RS 4 +.PD 0 +.HP 4 +.I +The disk size in bytes (uint64). +.PD +.RE +.TP +.B attr:::error: +Logs the raw value of the total error count (e.g., from SMART +attribute 199, if used for the report). +.RS 4 +.PD 0 +.HP 4 +.I +The total error count (uint64). +.PD +.RE +.TP +.B attr:::rotationrate: +Logs the disk\'s rotation rate. A value of 0 indicates an SSD. +.RS 4 +.PD 0 +.HP 4 +.I +The rotation rate (uint64, RPM). +.PD +.RE +.TP +.B attr:::flags:: +Logs the SMART status flags from the utility (e.g., smartctl). +.RS 4 +.PD 0 +.HP 4 +.I +The raw flags value (uint64, decimal). +.HP 4 +.I +The raw flags value (uint64, hexadecimal). +.PD +.RE +.TP +.B attr::::: +Logs the raw value of any assigned SMART attribute. +.RS 4 +.PD 0 +.HP 4 +.I +The SMART attribute ID (uint). +.HP 4 +.I +The raw attribute value (uint64, decimal). +.HP 4 +.I +The raw attribute value (uint64, hexadecimal). +.PD +.RE +.SS Summary +Tags logging the overall failure probabilities for the array. +.TP +.B summary:array_failure:: +Logs the total estimated failure rate for the entire array +(sum of individual disk AFRs) and the probability of at least +one disk failure in the next year. +.RS 4 +.PD 0 +.HP 4 +.I +The sum of AFRs of all disks in the array (double). +.HP 4 +.I +The probability of at least one disk failure in +.PD +.RE +.RS 4 +the next year (double). +.RE +.SH COMMAND PROBE TAGS +This section describes the tags output with the \`probe\` command. +.PP +Note that a \`\` may be associated with more \`\`, +in case the logical disk uses more physical disks. In such a case, +you\'ll see multiple tags for the same \`\` but with different +\`\`. +.SS Device Power State +Tags used to report the power state of each device. +.TP +.B probe::: +Logs the detected power state of a device. +.RS 4 +.PD 0 +.HP 4 +.I +The file path of the device (e.g., /dev/sdb). +.HP 4 +.I +The configured name of the disk. +.HP 4 +.I +The numerical power state: 0: Unknown, +1: StandBy, 2: Active. +.PD +.RE .SH ERROR TAGS These tags report specific errors that occur on data disks during the commands that access files and parities. @@ -1219,7 +1605,8 @@ file containing the block (escaped). .HP 4 .I A descriptive message indicating the nature of the -error (e.g., \`Open/Read/Write EIO error\`, \`Open/Read/Write error\`, \`Data error at position , diff bits /\`). +error (e.g., \`Open/Read/Write EIO error\`, \`Open/Read/Write error\`, +\`Data error at position , diff bits /\`). .PD .RE .TP @@ -1232,11 +1619,13 @@ Logs errors during parity disk read or write operations. The zero\-based index of the block where the error occurred (uint). .HP 4 .I -The configuration name of the parity level (e.g., \`parity\`, \`2\-parity\`). +The configuration name of the parity level (e.g., +\`parity\`, \`2\-parity\`). .HP 4 .I A descriptive message indicating the nature of the -error (e.g., \`Read/Write EIO error\`, \`Read/Write error\`, \`Data error, diff bits /\`). +error (e.g., \`Read/Write EIO error\`, \`Read/Write error\`, +\`Data error, diff bits /\`). .PD .RE .TP @@ -1256,7 +1645,10 @@ The target path of the hard link (escaped). .HP 4 .I A descriptive message indicating the nature of the -error (e.g., \`Hardlink stat error\`, \`Hardlink error for not regular file\`, \`Hardlink to stat error\`, \`Hardlink\-to error for not regular file\`, \`Hardlink mismatch for different inode\`). +error (e.g., \`Hardlink stat error\`, +\`Hardlink error for not regular file\`, \`Hardlink to stat error\`, +\`Hardlink\-to error for not regular file\`, +\`Hardlink mismatch for different inode\`). .PD .RE .TP @@ -1273,7 +1665,8 @@ The symlink path relative to disk root (escaped). .HP 4 .I A descriptive message indicating the nature of the -error (e.g., \`Symlink read error\`, \`Symlink data error \'\' instead of \'\'\`). +error (e.g., \`Symlink read error\`, +\`Symlink data error \'\' instead of \'\'\`). .PD .RE .TP @@ -1295,10 +1688,11 @@ error (e.g., \`Dir stat error\`, \`Dir error for not directory\`). .RE .TP .B outofparity:: -Logs that a file\'s blocks extend beyond the available parity space, -indicating that the parity files are too small to protect all data. -This occurs when data requires more parity than is available on the -parity disk(s) and is a critical warning. +Logs that a file\'s blocks extend beyond the available parity +space, indicating that the parity files are too small to +protect all data. This occurs when data requires more parity +than is available on the parity disk(s) and is a critical +warning. .RS 4 .PD 0 .HP 4 diff --git a/snapraid_log.d b/snapraid_log.d index 3ab6ef35..f765095a 100644 --- a/snapraid_log.d +++ b/snapraid_log.d @@ -57,7 +57,7 @@ Configuration Tags scanning the disk and reading the list of files. =conf:file: - Configuration file loaded (escaped string). + Configuration file loaded (escaped). =conf:missing: Operating without a configuration file. @@ -85,14 +85,14 @@ Configuration Tags multiple split parity is configured, there is only the index 0. A split parity configuration distributes parity blocks across multiple files. - - The escaped path. + - The path (escaped). =pool: - The configured dir to the pool mount point (escaped string). + The configured dir to the pool mount point (escaped). This is the optional mount point for the 'pool' feature. =share: - The configured dir to the pool mount point (escaped string). + The configured dir to the pool mount point (escaped). This is the optional mount point for the 'share' feature. =autosave: @@ -108,7 +108,7 @@ Configuration Tags (starting with '.') are excluded from the array. =content: - The absolute path to a content file being used (escaped string). + The absolute path to a content file being used (escaped). Content files store the metadata (like file hashes and timestamps) for the array. @@ -119,7 +119,7 @@ Configuration Tags - The split index (uint). If no multiple split parity is configured, there is only the index 0. - - The escaped path. + - The path (escaped). - The UUID of the partition containing the path. - The size of the parity file. Size is -1 if not yet fixed, meaning it can grow. This happens for the @@ -172,7 +172,7 @@ Scan Tags - Name of the data disk. - Path to the file/link/dir relative to the disk mount - (escaped string). + (escaped). =scan:add:: A new file, link, or directory was found that is not in the @@ -191,8 +191,8 @@ Scan Tags A file was moved on the same disk. This is an efficient operation that only updates the path metadata without re-hashing blocks. - - The old path to the file (escaped string). - - The new path to the file (escaped string). + - The old path to the file (escaped). + - The new path to the file (escaped). =scan:copy:::: A new file was found to be a copy of a file from another disk. @@ -200,7 +200,7 @@ Scan Tags efficient operation that avoids re-hashing all blocks. - The original file's disk. - - The original file's location (escaped string). + - The original file's location (escaped). =scan:restore:: A file's inode has changed but not its date-time and size, @@ -333,11 +333,13 @@ Thermal Tags - The configured name of the disk. - The unique device ID (uint64). - - The current temperature read from the disk in degrees Celsius. + - The current temperature read from the disk in degrees + Celsius. =thermal:highest: Logs the highest temperature observed among all monitored disks - in the current measurement cycle. This is used for thermal throttling. + in the current measurement cycle. This is used for thermal + throttling. - The highest temperature observed in degrees Celsius. @@ -364,11 +366,12 @@ Thermal Tags - The configured name of the disk. - The unique device ID (uint64). - - The heating rate constant, $k$ (double). - - The ambient temperature, $T_{\text{ambient}}$ (double). - - The estimated steady-state temperature, $T_{\text{steady}}$ (double), which is the maximum expected temperature of the disk. + - The heating rate constant, k (double). + - The ambient temperature, T_ambient (double). + - The estimated steady-state temperature, T_steady (double), + which is the maximum expected temperature of the disk. - Root Mean Square Error of the fit (double). - - Coefficient of determination ($R^2$) of the fit (double). + - Coefficient of determination (R^2) of the fit (double). - Maximum absolute error of the fit (double). =thermal:spindown @@ -390,18 +393,19 @@ Thermal Tags Command Status Tags This section describes the tags output with the `status` command. - All tags start with a prefix indicating the context, typically `summary:` - for overall statistics or a disk/block context. - - General Summary Tags - These tags provide general information about the array configuration and overall state. + Summary Tags + These tags provide general information about the array configuration + and overall state. =summary:block_size: - The size of a block in bytes. This is the unit of parity protection. + The size of a block in bytes. This is the unit of parity + protection. =summary:parity_block_count: - The total number of blocks allocated for all parity levels combined. + The total number of blocks allocated for all parity levels + combined. =summary:parity_block_total:: - Total blocks available for a specific parity level (e.g., `parity`, `2-parity`). + Total blocks available for a specific parity level (e.g., + `parity`, `2-parity`). =summary:parity_block_free:: Free blocks available for a specific parity level. =summary:parity_block_free_min: @@ -432,13 +436,16 @@ Command Status Tags =summary:prev_hash: The previous hash algorithm used, if a rehash is in progress. =summary:best_hash: - The best hash algorithm for optimal performance based on system capabilities. + The best hash algorithm for optimal performance based on + system capabilities. =summary:total_wasted: - Total wasted space (space on data disks exceeding parity capacity) in bytes. + Total wasted space (space on data disks exceeding parity + capacity) in bytes. =summary:total_used: Total used space by data files in bytes. =summary:total_free: - Total free space (usable by data) in bytes, limited by parity capacity. + Total free space (usable by data) in bytes, limited by parity + capacity. =summary:total_use_percent: Overall array use percentage. =summary:has_unsynced: @@ -483,15 +490,17 @@ Command Status Tags =summary:disk_block_free:: Free blocks on the disk. =summary:disk_block_max_by_space:: - Total blocks by disk space (used + free blocks), representing the - physical limit of the disk. + Total blocks by disk space (used + free blocks), representing + the physical limit of the disk. =summary:disk_block_max_by_parity:: - Total blocks limited by parity space (parity size + min parity free blocks). + Total blocks limited by parity space (parity size + min parity + free blocks). This is the logical limit imposed by the parity files. =summary:disk_block_max:: Maximum usable blocks (minimum of `..._by_space` and `..._by_parity`). =summary:disk_space_wasted:: - Wasted space on the disk in bytes (positive if disk is larger than usable parity space). + Wasted space on the disk in bytes (positive if disk is larger + than usable parity space). =summary:disk_used:: Used space on the disk in bytes. =summary:disk_free:: @@ -674,7 +683,8 @@ Command Check/Fix Tags - The name of the disk. - The file path relative to disk root (escaped). - A descriptive message indicating the nature of the problem - (e.g., `Unrecoverable error at position `, `Unrecoverable unsynced error at position `). + (e.g., `Unrecoverable error at position `, + `Unrecoverable unsynced error at position `). =collision:::: Logs that the modification time was not set on a recovered file to @@ -691,7 +701,7 @@ Command Check/Fix Tags =status:unrecoverable:: Indicates that a file has unrecoverable errors and was renamed to - .unrecoverable (in fix mode) or cannot be recovered (in check mode). + `.unrecoverable` (in fix mode) or cannot be recovered (in check mode). - The name of the disk. - The file path relative to disk root (escaped). @@ -751,6 +761,249 @@ Command Check/Fix Tags found. `error` - Indicates that errors were found (audit-only mode). +Command List Tags + This section describes the tags output with the `list` command. + + List Tags + These tags log details about individual files and links processed during + the listing operation. + + =file:::::: + Logs details for a regular file found on a disk. + + - The configured name of the disk. + - The path of the file relative to the disk's root + (escaped). + - The size of the file in bytes (uint64). + - The file's modification time in seconds since the + Epoch (int64). + - The file's modification time nanosecond component + (uint). + - The file's inode number (int64). + + =link_::: + Logs details for a link found on a disk. The `` component + varies based on the kind of link. + + - The type of link, one of: `hardlink`, `symlink`, + `symdir` (symlink to a directory), `junction` + (Windows-specific reparse point). + - The configured name of the disk (string). + - The path of the link relative to the disk's root + (escaped). + - The target path of the link (escaped). + + Summary Tags + These tags log final statistics about the entire listing operation. + + =summary:file_count: + Logs the total number of regular files processed. + + - The total number of files (uint). + + =summary:file_size: + Logs the total size of all regular files processed. + + - The cumulative size of all files (uint64, bytes). + + =summary:link_count: + Logs the total number of links processed (hardlinks, symlinks, + symdirs, junctions). + + - The total number of links (uint). + + =summary:exit:ok + Indicates a successful completion of the listing operation. + Note that if a fatal error happens, the program will abort, + and you won't get this tag. + +Command Dup Tags + This section describes the tags output with the `dup` command. + + Duplicate Tags + These tags log information about detected duplicate files and provide + a summary of the duplicate finding process. The content hash of the + whole file is used to determine duplicates. + + =dup:::::: dup + Logs the information about a pair of duplicate files found. + The first file listed is the one just processed, and the second + file is the previously processed file that has the same content hash. + + - The configured name of the disk containing the + newly processed duplicate file. + - The path of the newly processed duplicate file + relative to its disk's mount point (escaped). + - The configured name of the disk containing the + previously processed file that is the duplicate + of ``. + - The path of the previously processed duplicate file + relative to its disk's mount point (escaped). + - The size of the duplicate file in bytes (uint64). This + size corresponds to the file ``. + + Summary Tags + These tags provide a final summary of the duplicate finding process. + + =summary:dup_count: + Logs the total number of duplicate files found. A file is counted + as a duplicate if its hash matches a hash already seen. + + - The total count of duplicate files (uint). + + =summary:dup_size: + Logs the total size of all duplicate files found. This size is + the sum of the sizes of all files considered duplicates. + + - The total size of duplicate files in gigabytes (uint64). + + =summary:exit:unique + Logs the final exit status indicating that no duplicate files were + found. This tag is logged if `` is zero. + + =summary:exit:dup + Logs the final exit status indicating that at least one duplicate + file was found. This tag is logged if `` is greater than + zero. + +Command Pool Tags + This section describes the tags output with the `pool` command. + + =summary:link_count: + Logs the total number of links created (symlinks, junctions). + + - The total number of links (uint). + + =summary:exit:ok + Indicates a successful completion of the pool operation. + Note that if a fatal error happens, the program will abort, + and you won't get this tag. + +Command Rehash Tags + This section describes the tags output with the `rehash` command. + + Summary Tags + These tags provide a final summary of the rehash scheduling process. + + =summary:exit:scheduled + Logs the final exit status indicating that a rehash operation has + been successfully scheduled. The rehash will be performed + incrementally in future `sync` or `scrub` commands. + + =summary:exit:already_in_progress + Logs the final exit status indicating that a rehash is already + in progress and cannot be scheduled again. This causes the + program to exit with a fatal error. + + =summary:exit:not_required + Logs the final exit status indicating that the current hash + algorithm is already the `best hash` for the platform, and thus + a rehash is not required. This causes the program to exit with + a fatal error. + +Command Smart Tags + This section describes the tags output with the `smart` command. + + Note that a `` may be associated with more ``, + in case the logical disk uses more physical disks. In such a case, + you'll see multiple tags for the same `` but with different + ``. + + SMART Attributes + Tags logging specific disk identification and raw SMART attribute + values. + + =smart:: + Logs the start of the SMART report for a device. + + - The file path of the device (e.g., /dev/sdb). + - The configured name of the disk. + + =attr:::serial: + Logs the disk's serial number. + + - The disk's serial number (escaped). + + =attr:::vendor: + Logs the disk's vendor string. + + - The disk's vendor identifier (escaped). + + =attr:::model: + Logs the disk's model string. + + - The disk's model identifier (escaped). + + =attr:::afr:: + Logs the estimated Annual Failure Rate (AFR) and the + probability of one failure in the next year based on SMART + attributes. The AFR is calculated using the maximum rate + reported by specific SMART attributes (5, 187, 188, 197, 198). + + - The computed Annual Failure Rate (double). + - The probability of one or more failures in the + next year (double). + + =attr:::size: + Logs the size of the disk. + + - The disk size in bytes (uint64). + + =attr:::error: + Logs the raw value of the total error count (e.g., from SMART + attribute 199, if used for the report). + + - The total error count (uint64). + + =attr:::rotationrate: + Logs the disk's rotation rate. A value of 0 indicates an SSD. + + - The rotation rate (uint64, RPM). + + =attr:::flags:: + Logs the SMART status flags from the utility (e.g., smartctl). + + - The raw flags value (uint64, decimal). + - The raw flags value (uint64, hexadecimal). + + =attr::::: + Logs the raw value of any assigned SMART attribute. + + - The SMART attribute ID (uint). + - The raw attribute value (uint64, decimal). + - The raw attribute value (uint64, hexadecimal). + + Summary + Tags logging the overall failure probabilities for the array. + + =summary:array_failure:: + Logs the total estimated failure rate for the entire array + (sum of individual disk AFRs) and the probability of at least + one disk failure in the next year. + + - The sum of AFRs of all disks in the array (double). + - The probability of at least one disk failure in + the next year (double). + +Command Probe Tags + This section describes the tags output with the `probe` command. + + Note that a `` may be associated with more ``, + in case the logical disk uses more physical disks. In such a case, + you'll see multiple tags for the same `` but with different + ``. + + Device Power State + Tags used to report the power state of each device. + + =probe::: + Logs the detected power state of a device. + + - The file path of the device (e.g., /dev/sdb). + - The configured name of the disk. + - The numerical power state: 0: Unknown, + 1: StandBy, 2: Active. + Error Tags These tags report specific errors that occur on data disks during the commands that access files and parities. @@ -764,15 +1017,18 @@ Error Tags - The path (relative to the disk mount point) of the file containing the block (escaped). - A descriptive message indicating the nature of the - error (e.g., `Open/Read/Write EIO error`, `Open/Read/Write error`, `Data error at position , diff bits /`). + error (e.g., `Open/Read/Write EIO error`, `Open/Read/Write error`, + `Data error at position , diff bits /`). =parity_error::: Logs errors during parity disk read or write operations. - The zero-based index of the block where the error occurred (uint). - - The configuration name of the parity level (e.g., `parity`, `2-parity`). + - The configuration name of the parity level (e.g., + `parity`, `2-parity`). - A descriptive message indicating the nature of the - error (e.g., `Read/Write EIO error`, `Read/Write error`, `Data error, diff bits /`). + error (e.g., `Read/Write EIO error`, `Read/Write error`, + `Data error, diff bits /`). =hardlink_error:::: Indicates an error when attempting to access a hard link. @@ -781,7 +1037,10 @@ Error Tags - The hard link path relative to disk root (escaped). - The target path of the hard link (escaped). - A descriptive message indicating the nature of the - error (e.g., `Hardlink stat error`, `Hardlink error for not regular file`, `Hardlink to stat error`, `Hardlink-to error for not regular file`, `Hardlink mismatch for different inode`). + error (e.g., `Hardlink stat error`, + `Hardlink error for not regular file`, `Hardlink to stat error`, + `Hardlink-to error for not regular file`, + `Hardlink mismatch for different inode`). =symlink_error::: Indicates an error when attempting to access a symbolic link. @@ -789,7 +1048,8 @@ Error Tags - The name of the disk. - The symlink path relative to disk root (escaped). - A descriptive message indicating the nature of the - error (e.g., `Symlink read error`, `Symlink data error '' instead of ''`). + error (e.g., `Symlink read error`, + `Symlink data error '' instead of ''`). =dir_error::: Indicates an error when attempting to access a directory. @@ -800,10 +1060,11 @@ Error Tags error (e.g., `Dir stat error`, `Dir error for not directory`). =outofparity:: - Logs that a file's blocks extend beyond the available parity space, - indicating that the parity files are too small to protect all data. - This occurs when data requires more parity than is available on the - parity disk(s) and is a critical warning. + Logs that a file's blocks extend beyond the available parity + space, indicating that the parity files are too small to + protect all data. This occurs when data requires more parity + than is available on the parity disk(s) and is a critical + warning. - The name of the disk containing the file. - The file path relative to the disk root (escaped). diff --git a/snapraid_log.txt b/snapraid_log.txt index abb22e05..fef52b9a 100644 --- a/snapraid_log.txt +++ b/snapraid_log.txt @@ -63,7 +63,7 @@ These tags report the memory usage and global configuration after scanning the disk and reading the list of files. conf:file: - Configuration file loaded (escaped string). + Configuration file loaded (escaped). conf:missing: Operating without a configuration file. @@ -91,14 +91,14 @@ scanning the disk and reading the list of files. multiple split parity is configured, there is only the index 0. A split parity configuration distributes parity blocks across multiple files. - - The escaped path. + - The path (escaped). pool: - The configured dir to the pool mount point (escaped string). + The configured dir to the pool mount point (escaped). This is the optional mount point for the 'pool' feature. share: - The configured dir to the pool mount point (escaped string). + The configured dir to the pool mount point (escaped). This is the optional mount point for the 'share' feature. autosave: @@ -114,7 +114,7 @@ scanning the disk and reading the list of files. (starting with '.') are excluded from the array. content: - The absolute path to a content file being used (escaped string). + The absolute path to a content file being used (escaped). Content files store the metadata (like file hashes and timestamps) for the array. @@ -125,7 +125,7 @@ scanning the disk and reading the list of files. - The split index (uint). If no multiple split parity is configured, there is only the index 0. - - The escaped path. + - The path (escaped). - The UUID of the partition containing the path. - The size of the parity file. Size is -1 if not yet fixed, meaning it can grow. This happens for the @@ -184,7 +184,7 @@ content file. They are output for every discovered change, and - Name of the data disk. - Path to the file/link/dir relative to the disk mount - (escaped string). + (escaped). scan:add:: A new file, link, or directory was found that is not in the @@ -203,8 +203,8 @@ content file. They are output for every discovered change, and A file was moved on the same disk. This is an efficient operation that only updates the path metadata without re-hashing blocks. - - The old path to the file (escaped string). - - The new path to the file (escaped string). + - The old path to the file (escaped). + - The new path to the file (escaped). scan:copy:::: A new file was found to be a copy of a file from another disk. @@ -212,7 +212,7 @@ content file. They are output for every discovered change, and efficient operation that avoids re-hashing all blocks. - The original file's disk. - - The original file's location (escaped string). + - The original file's location (escaped). scan:restore:: A file's inode has changed but not its date-time and size, @@ -351,11 +351,13 @@ disk access. - The configured name of the disk. - The unique device ID (uint64). - - The current temperature read from the disk in degrees Celsius. + - The current temperature read from the disk in degrees + Celsius. thermal:highest: Logs the highest temperature observed among all monitored disks - in the current measurement cycle. This is used for thermal throttling. + in the current measurement cycle. This is used for thermal + throttling. - The highest temperature observed in degrees Celsius. @@ -382,11 +384,12 @@ disk access. - The configured name of the disk. - The unique device ID (uint64). - - The heating rate constant, $k$ (double). - - The ambient temperature, $T_{\text{ambient}}$ (double). - - The estimated steady-state temperature, $T_{\text{steady}}$ (double), which is the maximum expected temperature of the disk. + - The heating rate constant, k (double). + - The ambient temperature, T_ambient (double). + - The estimated steady-state temperature, T_steady (double), + which is the maximum expected temperature of the disk. - Root Mean Square Error of the fit (double). - - Coefficient of determination ($R^2$) of the fit (double). + - Coefficient of determination (R^2) of the fit (double). - Maximum absolute error of the fit (double). thermal:spindown @@ -411,18 +414,19 @@ disk access. This section describes the tags output with the `status` command. -All tags start with a prefix indicating the context, typically `summary:` -for overall statistics or a disk/block context. - ----- 7.0.1 General Summary Tags ---- -These tags provide general information about the array configuration and overall state. +---- 7.0.1 Summary Tags ---- +These tags provide general information about the array configuration +and overall state. summary:block_size: - The size of a block in bytes. This is the unit of parity protection. + The size of a block in bytes. This is the unit of parity + protection. summary:parity_block_count: - The total number of blocks allocated for all parity levels combined. + The total number of blocks allocated for all parity levels + combined. summary:parity_block_total:: - Total blocks available for a specific parity level (e.g., `parity`, `2-parity`). + Total blocks available for a specific parity level (e.g., + `parity`, `2-parity`). summary:parity_block_free:: Free blocks available for a specific parity level. summary:parity_block_free_min: @@ -453,13 +457,16 @@ These tags provide general information about the array configuration and overall summary:prev_hash: The previous hash algorithm used, if a rehash is in progress. summary:best_hash: - The best hash algorithm for optimal performance based on system capabilities. + The best hash algorithm for optimal performance based on + system capabilities. summary:total_wasted: - Total wasted space (space on data disks exceeding parity capacity) in bytes. + Total wasted space (space on data disks exceeding parity + capacity) in bytes. summary:total_used: Total used space by data files in bytes. summary:total_free: - Total free space (usable by data) in bytes, limited by parity capacity. + Total free space (usable by data) in bytes, limited by parity + capacity. summary:total_use_percent: Overall array use percentage. summary:has_unsynced: @@ -504,15 +511,17 @@ is the disk name. summary:disk_block_free:: Free blocks on the disk. summary:disk_block_max_by_space:: - Total blocks by disk space (used + free blocks), representing the - physical limit of the disk. + Total blocks by disk space (used + free blocks), representing + the physical limit of the disk. summary:disk_block_max_by_parity:: - Total blocks limited by parity space (parity size + min parity free blocks). + Total blocks limited by parity space (parity size + min parity + free blocks). This is the logical limit imposed by the parity files. summary:disk_block_max:: Maximum usable blocks (minimum of `..._by_space` and `..._by_parity`). summary:disk_space_wasted:: - Wasted space on the disk in bytes (positive if disk is larger than usable parity space). + Wasted space on the disk in bytes (positive if disk is larger + than usable parity space). summary:disk_used:: Used space on the disk in bytes. summary:disk_free:: @@ -701,7 +710,8 @@ These tags log errors that could not be recovered. - The name of the disk. - The file path relative to disk root (escaped). - A descriptive message indicating the nature of the problem - (e.g., `Unrecoverable error at position `, `Unrecoverable unsynced error at position `). + (e.g., `Unrecoverable error at position `, + `Unrecoverable unsynced error at position `). collision:::: Logs that the modification time was not set on a recovered file to @@ -718,7 +728,7 @@ These tags log the final status of files after processing. status:unrecoverable:: Indicates that a file has unrecoverable errors and was renamed to - .unrecoverable (in fix mode) or cannot be recovered (in check mode). + `.unrecoverable` (in fix mode) or cannot be recovered (in check mode). - The name of the disk. - The file path relative to disk root (escaped). @@ -779,7 +789,268 @@ These tags provide summary statistics at the end of the command. `error` - Indicates that errors were found (audit-only mode). -10 ERROR TAGS +10 COMMAND LIST TAGS +==================== + +This section describes the tags output with the `list` command. + +---- 10.0.1 List Tags ---- +These tags log details about individual files and links processed during +the listing operation. + + file:::::: + Logs details for a regular file found on a disk. + + - The configured name of the disk. + - The path of the file relative to the disk's root + (escaped). + - The size of the file in bytes (uint64). + - The file's modification time in seconds since the + Epoch (int64). + - The file's modification time nanosecond component + (uint). + - The file's inode number (int64). + + link_::: + Logs details for a link found on a disk. The `` component + varies based on the kind of link. + + - The type of link, one of: `hardlink`, `symlink`, + `symdir` (symlink to a directory), `junction` + (Windows-specific reparse point). + - The configured name of the disk (string). + - The path of the link relative to the disk's root + (escaped). + - The target path of the link (escaped). + +---- 10.0.2 Summary Tags ---- +These tags log final statistics about the entire listing operation. + + summary:file_count: + Logs the total number of regular files processed. + + - The total number of files (uint). + + summary:file_size: + Logs the total size of all regular files processed. + + - The cumulative size of all files (uint64, bytes). + + summary:link_count: + Logs the total number of links processed (hardlinks, symlinks, + symdirs, junctions). + + - The total number of links (uint). + + summary:exit:ok + Indicates a successful completion of the listing operation. + Note that if a fatal error happens, the program will abort, + and you won't get this tag. + + +11 COMMAND DUP TAGS +=================== + +This section describes the tags output with the `dup` command. + +---- 11.0.1 Duplicate Tags ---- +These tags log information about detected duplicate files and provide +a summary of the duplicate finding process. The content hash of the +whole file is used to determine duplicates. + + dup:::::: dup + Logs the information about a pair of duplicate files found. + The first file listed is the one just processed, and the second + file is the previously processed file that has the same content hash. + + - The configured name of the disk containing the + newly processed duplicate file. + - The path of the newly processed duplicate file + relative to its disk's mount point (escaped). + - The configured name of the disk containing the + previously processed file that is the duplicate + of ``. + - The path of the previously processed duplicate file + relative to its disk's mount point (escaped). + - The size of the duplicate file in bytes (uint64). This + size corresponds to the file ``. + +---- 11.0.2 Summary Tags ---- +These tags provide a final summary of the duplicate finding process. + + summary:dup_count: + Logs the total number of duplicate files found. A file is counted + as a duplicate if its hash matches a hash already seen. + + - The total count of duplicate files (uint). + + summary:dup_size: + Logs the total size of all duplicate files found. This size is + the sum of the sizes of all files considered duplicates. + + - The total size of duplicate files in gigabytes (uint64). + + summary:exit:unique + Logs the final exit status indicating that no duplicate files were + found. This tag is logged if `` is zero. + + summary:exit:dup + Logs the final exit status indicating that at least one duplicate + file was found. This tag is logged if `` is greater than + zero. + + +12 COMMAND POOL TAGS +==================== + +This section describes the tags output with the `pool` command. + + summary:link_count: + Logs the total number of links created (symlinks, junctions). + + - The total number of links (uint). + + summary:exit:ok + Indicates a successful completion of the pool operation. + Note that if a fatal error happens, the program will abort, + and you won't get this tag. + + +13 COMMAND REHASH TAGS +====================== + +This section describes the tags output with the `rehash` command. + +---- 13.0.1 Summary Tags ---- +These tags provide a final summary of the rehash scheduling process. + + summary:exit:scheduled + Logs the final exit status indicating that a rehash operation has + been successfully scheduled. The rehash will be performed + incrementally in future `sync` or `scrub` commands. + + summary:exit:already_in_progress + Logs the final exit status indicating that a rehash is already + in progress and cannot be scheduled again. This causes the + program to exit with a fatal error. + + summary:exit:not_required + Logs the final exit status indicating that the current hash + algorithm is already the `best hash` for the platform, and thus + a rehash is not required. This causes the program to exit with + a fatal error. + + +14 COMMAND SMART TAGS +===================== + +This section describes the tags output with the `smart` command. + +Note that a `` may be associated with more ``, +in case the logical disk uses more physical disks. In such a case, +you'll see multiple tags for the same `` but with different +``. + +---- 14.0.1 SMART Attributes ---- +Tags logging specific disk identification and raw SMART attribute +values. + + smart:: + Logs the start of the SMART report for a device. + + - The file path of the device (e.g., /dev/sdb). + - The configured name of the disk. + + attr:::serial: + Logs the disk's serial number. + + - The disk's serial number (escaped). + + attr:::vendor: + Logs the disk's vendor string. + + - The disk's vendor identifier (escaped). + + attr:::model: + Logs the disk's model string. + + - The disk's model identifier (escaped). + + attr:::afr:: + Logs the estimated Annual Failure Rate (AFR) and the + probability of one failure in the next year based on SMART + attributes. The AFR is calculated using the maximum rate + reported by specific SMART attributes (5, 187, 188, 197, 198). + + - The computed Annual Failure Rate (double). + - The probability of one or more failures in the + next year (double). + + attr:::size: + Logs the size of the disk. + + - The disk size in bytes (uint64). + + attr:::error: + Logs the raw value of the total error count (e.g., from SMART + attribute 199, if used for the report). + + - The total error count (uint64). + + attr:::rotationrate: + Logs the disk's rotation rate. A value of 0 indicates an SSD. + + - The rotation rate (uint64, RPM). + + attr:::flags:: + Logs the SMART status flags from the utility (e.g., smartctl). + + - The raw flags value (uint64, decimal). + - The raw flags value (uint64, hexadecimal). + + attr::::: + Logs the raw value of any assigned SMART attribute. + + - The SMART attribute ID (uint). + - The raw attribute value (uint64, decimal). + - The raw attribute value (uint64, hexadecimal). + +---- 14.0.2 Summary ---- +Tags logging the overall failure probabilities for the array. + + summary:array_failure:: + Logs the total estimated failure rate for the entire array + (sum of individual disk AFRs) and the probability of at least + one disk failure in the next year. + + - The sum of AFRs of all disks in the array (double). + - The probability of at least one disk failure in + the next year (double). + + +15 COMMAND PROBE TAGS +===================== + +This section describes the tags output with the `probe` command. + +Note that a `` may be associated with more ``, +in case the logical disk uses more physical disks. In such a case, +you'll see multiple tags for the same `` but with different +``. + +---- 15.0.1 Device Power State ---- +Tags used to report the power state of each device. + + probe::: + Logs the detected power state of a device. + + - The file path of the device (e.g., /dev/sdb). + - The configured name of the disk. + - The numerical power state: 0: Unknown, + 1: StandBy, 2: Active. + + +16 ERROR TAGS ============= These tags report specific errors that occur on data disks during the @@ -794,15 +1065,18 @@ commands that access files and parities. - The path (relative to the disk mount point) of the file containing the block (escaped). - A descriptive message indicating the nature of the - error (e.g., `Open/Read/Write EIO error`, `Open/Read/Write error`, `Data error at position , diff bits /`). + error (e.g., `Open/Read/Write EIO error`, `Open/Read/Write error`, + `Data error at position , diff bits /`). parity_error::: Logs errors during parity disk read or write operations. - The zero-based index of the block where the error occurred (uint). - - The configuration name of the parity level (e.g., `parity`, `2-parity`). + - The configuration name of the parity level (e.g., + `parity`, `2-parity`). - A descriptive message indicating the nature of the - error (e.g., `Read/Write EIO error`, `Read/Write error`, `Data error, diff bits /`). + error (e.g., `Read/Write EIO error`, `Read/Write error`, + `Data error, diff bits /`). hardlink_error:::: Indicates an error when attempting to access a hard link. @@ -811,7 +1085,10 @@ commands that access files and parities. - The hard link path relative to disk root (escaped). - The target path of the hard link (escaped). - A descriptive message indicating the nature of the - error (e.g., `Hardlink stat error`, `Hardlink error for not regular file`, `Hardlink to stat error`, `Hardlink-to error for not regular file`, `Hardlink mismatch for different inode`). + error (e.g., `Hardlink stat error`, + `Hardlink error for not regular file`, `Hardlink to stat error`, + `Hardlink-to error for not regular file`, + `Hardlink mismatch for different inode`). symlink_error::: Indicates an error when attempting to access a symbolic link. @@ -819,7 +1096,8 @@ commands that access files and parities. - The name of the disk. - The symlink path relative to disk root (escaped). - A descriptive message indicating the nature of the - error (e.g., `Symlink read error`, `Symlink data error '' instead of ''`). + error (e.g., `Symlink read error`, + `Symlink data error '' instead of ''`). dir_error::: Indicates an error when attempting to access a directory. @@ -830,10 +1108,11 @@ commands that access files and parities. error (e.g., `Dir stat error`, `Dir error for not directory`). outofparity:: - Logs that a file's blocks extend beyond the available parity space, - indicating that the parity files are too small to protect all data. - This occurs when data requires more parity than is available on the - parity disk(s) and is a critical warning. + Logs that a file's blocks extend beyond the available parity + space, indicating that the parity files are too small to + protect all data. This occurs when data requires more parity + than is available on the parity disk(s) and is a critical + warning. - The name of the disk containing the file. - The file path relative to the disk root (escaped).