{"id":40551072,"url":"https://github.com/esperlu/gomount","last_synced_at":"2026-01-21T00:02:11.292Z","repository":{"id":210203068,"uuid":"275770874","full_name":"esperlu/gomount","owner":"esperlu","description":"Linux, fast user mount.","archived":false,"fork":false,"pushed_at":"2023-12-24T15:14:14.000Z","size":43,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-12-24T16:26:16.855Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/esperlu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-06-29T08:11:33.000Z","updated_at":"2023-12-24T16:26:20.548Z","dependencies_parsed_at":"2023-12-01T11:56:54.449Z","dependency_job_id":"9c78f7d2-3e04-477f-b7d9-5590de6ae425","html_url":"https://github.com/esperlu/gomount","commit_stats":null,"previous_names":["esperlu/gomount"],"tags_count":2,"template":null,"template_full_name":null,"purl":"pkg:github/esperlu/gomount","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esperlu%2Fgomount","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esperlu%2Fgomount/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esperlu%2Fgomount/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esperlu%2Fgomount/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esperlu","download_url":"https://codeload.github.com/esperlu/gomount/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esperlu%2Fgomount/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28618863,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T23:49:58.628Z","status":"ssl_error","status_checked_at":"2026-01-20T23:47:29.996Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-21T00:02:10.497Z","updated_at":"2026-01-21T00:02:11.284Z","avatar_url":"https://github.com/esperlu.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gomount\nFast user mount of multiple remote mount points, skipping the responding servers not responding to http probe (ping-ish). Mount points need to be configured in `fstab`. Speed is achieved by using Go routines to concurrently send http probes to the targeted servers and mount the servers. It's fast compared to sequential mounts in a bash script due to the way `mount(8)` tries to connect to remote servers that are down. It takes a couple of seconds before `mount(8)` exits with a `connection reset by peer` error message. This Go program first probes the servers with a short timeout (150 ms) which is usually enough to determine if a server is up and then proceed with the actual mount. Each server is processed in concurrent Go routines.\n\nIn a comparison test, this Go program is about 20 times faster for a list of 9 mounts on \"up\" servers and 3 \"downs\".\n\nThis go program executes  `exec.Command(mount(8))` rather than the `mount(2)` used by the Go function `syscall.Mount()` because `mount(2)` requires root privileges.\n\nLinux only. Could possibly also work on OS-X. Not tested.\n\n## config file\nYou first need to make a YAML config file and set its full access path/name into the constant `confFile` in the Go code.\n\n\n### config file example\n\n    Servers:\n\n    - name: rpi-2\n      path: /home/jeanluc/my-mnt/rpi_2\n      host: 192.168.10.55\n      port: 22\n\n    - name: arsule-jeanluc\n      path: /home/jeanluc/my-mnt/arsule_jeanluc\n      host: arsule\n      port: 22\n\n    - name: arsule-web\n      path: /home/jeanluc/my-mnt/arsule_web\n      host: arsule\n      port: 22\n\n\n## Usage\n`$ gomount [options]`\n\n### Options\n* `-t` Change default timeout for ping (150 ms).\n* `-v` Increase verbosity by showing error messages.\n* `-h` This help screen.\n\n## Typical output\n```\n$ gomount\n\nbizzard-jeanluc      already mounted\nvps                  mounted\nbizzard-web          already mounted\nubnt                 already mounted\nvps-jeanluc          mounted\ngaubert-smb          not responding  \narsule-jeanluc       not responding  \nrpi-2                not responding  \ngaubert-sshfs        not responding  \narsule-web           not responding  \nvps-web              mounted\n```\n\n## Typical output with increased verbosity\n\n```\n\n$ gomount -v\n\ngaubert-sshfs        already mounted\nubnt                 already mounted\ngaubert-smb          mount: /home/jeanluc/my-mnt/gaubert_sambaz: No such file or directory\narsule-web           dial tcp 192.168.0.153:221: i/o timeout\narsule-jeanluc       dial tcp 192.168.0.153:221: i/o timeout\nrpi-2                dial tcp 192.168.0.156:22: i/o timeout\n```\n----\n(c) Jean-Luc Lacroix","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesperlu%2Fgomount","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesperlu%2Fgomount","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesperlu%2Fgomount/lists"}