| Crates.io | nofus |
| lib.rs | nofus |
| version | 0.4.0 |
| created_at | 2025-02-26 21:44:34.260391+00 |
| updated_at | 2025-09-15 16:06:52.028262+00 |
| description | A daemon for monitoring and reacting to the status of NFS mounts. |
| homepage | https://github.com/kariudo/nofus |
| repository | https://github.com/kariudo/nofus |
| max_upload_size | |
| id | 1570972 |
| size | 32,846 |
Nofus is a π₯ blazingly-fast, π§ memory-safe, π batteries-included, πΊergonomic, π¦ 100% Rust-powered daemon that vigilantly monitors your NFS mounts and triggers custom actions based on their availability. Never get caught with stale mounts again! π‘οΈ
inotifyPrerequisites: If you want to run the project from source, or install from cargo directly. Ensure you have Rust installed (1.60+)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Install Nofus:
cargo install nofus
Create config.yml in your $HOME/.config/nofus directory:
# Sample Configuration
mount_points:
- "/mnt/nfs/share1"
- "/media/cloud_storage"
delay_seconds: 5 # Check interval
# Commands to execute (supports full shell syntax)
all_mounted_cmd: "systemctl start my-app.service"
any_unmounted_cmd: "systemctl stop my-app.service && wall 'NFS Crisis!'"
[!TIP] If you start nofus without creating a configuration file first, one will be created from a template and nofus will exit.
nofus [OPTIONS]
Options:
--dry-run: Simulate without executing commands--verbose: Show debug-level loggingExample:
nofus --verbose --dry-run
2023-09-15T14:30:00 [INFO] Initial state: All NFS mounts available β
2023-09-15T14:35:22 [ERROR] NFS mount disconnected: /mnt/nfs/share1 β
2023-09-15T14:35:22 [DEBUG] Executing: systemctl stop my-app.service
2023-09-15T14:36:45 [INFO] Mount recovered: /mnt/nfs/share1 β
We welcome contributions! Please follow these steps:
git checkout -b feat/amazing-feature)git commit -m 'Add amazing feature')git push origin feat/amazing-feature)MIT License - see LICENSE for details.
Made with β€οΈ by kariudo | β Support the developer