Skip to content

Quick Usage

  1. Install Bashly (one-time):

    Terminal window
    gem install bashly
  2. Generate the executable:

    Terminal window
    cd packages/debian-ubuntu/scripts/netshare-mounter
    bashly generate
  3. Verify installation:

    Terminal window
    ./netshare-mounter --help

Interactive (prompts for credentials):

Terminal window
sudo ./netshare-mounter mount //192.168.1.100/share /mnt/myshare

Non-interactive (full automation):

Terminal window
sudo ./netshare-mounter mount //192.168.1.100/share /mnt/myshare \
--username myuser \
--password mypass \
--auto-install

All mounts:

Terminal window
./netshare-mounter status

Specific mount:

Terminal window
./netshare-mounter status /mnt/myshare

Detailed status:

Terminal window
./netshare-mounter status /mnt/myshare --verbose
Terminal window
sudo ./netshare-mounter validate //192.168.1.100/share --check-connectivity

Clean unmount (prompts for confirmation):

Terminal window
sudo ./netshare-mounter unmount /mnt/myshare

Keep credentials for later:

Terminal window
sudo ./netshare-mounter unmount /mnt/myshare --keep-credentials

Force unmount:

Terminal window
sudo ./netshare-mounter unmount /mnt/myshare --force

Complete cleanup (purge - no prompts):

Terminal window
sudo ./netshare-mounter unmount /mnt/myshare --purge
Terminal window
sudo ./netshare-mounter mount //server/share /mnt/share \
--username admin \
--password secretpass \
--uid 1001 \
--gid 1001 \
--file-mode 0640 \
--dir-mode 0750
Terminal window
sudo ./netshare-mounter mount //old-server/share /mnt/old \
--username user \
--password pass \
--cifs-version 2.0
Terminal window
sudo ./netshare-mounter mount //server/share /mnt/share \
--username user \
--password pass \
--enable-only

This will configure the mount but not start it immediately (will mount on next boot).

Terminal window
sudo ./netshare-mounter mount //server/share /mnt/share \
--username DOMAIN\\user \
--password pass \
--domain DOMAIN
Terminal window
sudo journalctl -xeu mnt-myshare.mount
Terminal window
sudo systemctl status mnt-myshare.mount
Terminal window
sudo mount -t cifs //server/share /mnt/test \
-o credentials=/root/.smbcredentials
Terminal window
sudo lsof /mnt/myshare
sudo fuser -vm /mnt/myshare
  1. Always validate first - Use validate --check-connectivity before mounting
  2. Test credentials - Mount interactively first to verify credentials work
  3. Check logs - If mount fails, check journalctl -xeu <unit-name>
  4. Use JSON output - For scripting, use --json flag with status command
  5. Keep credentials - When unmounting, consider --keep-credentials if you’ll remount later

To use the command from anywhere:

Terminal window
sudo cp netshare-mounter /usr/local/bin/
sudo chmod +x /usr/local/bin/netshare-mounter
# Now you can run from anywhere
netshare-mounter --version
#!/bin/bash
# Automated mount script
SHARE="//nas.local/media"
MOUNT="/mnt/media"
# Validate first
if ! netshare-mounter validate "$SHARE" --check-connectivity; then
echo "Validation failed, aborting"
exit 1
fi
# Mount using environment variables for credentials
netshare-mounter mount "$SHARE" "$MOUNT" \
--username "$SMB_USER" \
--password "$SMB_PASS" \
--auto-install
# Check if successful
if netshare-mounter status "$MOUNT" --json | jq -r '.mounted' | grep -q 'true'; then
echo "Mount successful!"
else
echo "Mount failed!"
exit 1
fi