- Shell 100%
| .gitignore | ||
| gacp | ||
| rcmount | ||
| README.md | ||
| sbak | ||
🛠️ ShellTools: Handy tools to use like native Linux command
A collection of high-performance, professional Linux utilities designed for efficiency, reliability, and a zero-dependency footprint. These tools are engineered to act as native system commands, providing a seamless experience for system administrators and developers.
📦 Installation | ✨ Included utilities | 📖 Usage example
📦 Installation
Run following command as root user;
(INSTALLATION_PATH="/Joy"; \
mkdir -p "${INSTALLATION_PATH}"; \
cd "${INSTALLATION_PATH}" && \
git clone -q https://forgejo.piti.cloud/joy/ShellTools.git && \
cd ShellTools && \
rm -f .gitignore README.md && \
chmod 755 * && \
echo "export PATH=\$PATH:${INSTALLATION_PATH}/ShellTools" > /etc/profile.d/Joy-ShellTools.sh
); source /etc/profile.d/Joy-ShellTools.sh
📦 Update
Run following command as root user;
(INSTALLATION_PATH="/Joy/ShellTools"; \
cd "${INSTALLATION_PATH}" && \
git fetch --all && \
git reset --hard origin/main && \
rm -f .gitignore README.md && \
chmod 755 *) && echo "✅ Update succeeded" || echo "❌ Update failed!"
✨ Included utilities
sbak: Stupid Backup
A universal, multi-channel backup and distribution pipeline.
- Local: Dynamic compression with automated pruning (count/age).
- Mirroring: Direct copying to network/mounted paths.
- Remote: Secure offloading via FTP and SSH/SFTP.
- Notification: Real-time alerts via Webhooks and SMTP.
- Lifecycle: Pre- and post-backup shell command hooks.
gacp: Git push helper
A streamlined wrapper for the Git commit-and-push workflow.
- Fast-Track: Adds all changes, commits with a custom or default message, and pushes to the remote repository in one command.
rcmount: Mount an rClone remote
Create a mount point for an rClone remote and mount it using rClone.
📖 Usage examples
sbak: Stupid Backup
Standard Local Backup:
sbak
Advanced remote pipeline:
sbak -s /var/www/html -t /mnt/backups -c 10 \
--ftp-host ftp.example.com \
--ftp-user admin \
--ftp-password secret \
--webhook-url https://hook.example.com/alert \
--webhook-post \
--command-before "docker compose down;#" \
--command-after "docker compose up -d;#"
Note;
- Use
sbak --helpfor complete options - Backup file path and source path are automatically appended to the
--command-before&--command-aftercommands - Use
;#at the end of--command-before&--command-aftercommands to suppress trailing arguments
gacp: Git push helper
Push with default message ("Update"):
gacp
Push with custom message:
gacp "Fixed critical bug in API"
rcmount: Mount an rClone remote
Create mount point at /Remote/remote_name path:
rcmount --remote-name=remote_name
Mount /Remote/Path remote path at /My/Mount/Location/remote_name local path:
rcmount --remote-name=remote_name --remote-path=/Remote/Path --local-base-path=/Central/Mount/Location