nofus-0.2.1 is not a library.
๐ Nofus - The NFS Mount Guardian
Nofus is a blazingly fast and memory-safe Rust-powered daemon that vigilantly monitors your NFS mounts and triggers custom actions based on their availability. Never get caught with stale mounts again! ๐ก๏ธ
โจ Features
- ๐ต๏ธ Real-time NFS Mount Monitoring using Linux
inotify - โก Configurable System Commands for mount/unmount events
- ๐งช Dry-Run Mode for safe testing
- ๐ Verbose Logging for deep insights
- ๐ Periodic Health Checks (configurable interval)
- ๐ YAML Configuration for easy setup
๐ฆ Installation
-
Prerequisites: Ensure you have Rust installed (1.60+)
| -
Install Nofus:
โ๏ธ Configuration
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!'"
Note: If you start nofus without creating a configuration file first, one will be created from a template and nofus will exit.
๐ฆ Usage
Options:
--dry-run: Simulate without executing commands--verbose: Show debug-level logging
Example:
๐ฅ๏ธ Sample Workflow
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 โ
๐ค Contributing
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feat/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feat/amazing-feature) - Open a Pull Request
๐ License
MIT License - see LICENSE for details.