{"id":20531827,"url":"https://github.com/ad5001/remotesrun","last_synced_at":"2026-04-20T02:03:55.670Z","repository":{"id":71031350,"uuid":"445823386","full_name":"Ad5001/RemotesRun","owner":"Ad5001","description":" Run several scripts on remote servers automatically.","archived":false,"fork":false,"pushed_at":"2022-07-11T20:39:35.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-06T02:46:38.602Z","etag":null,"topics":["bash","bash-scripting","maintenance","remote-execution"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/Ad5001.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-08T13:13:30.000Z","updated_at":"2022-01-08T13:40:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"7d4db3a2-ea2a-475a-af1e-5d117c1c894e","html_url":"https://github.com/Ad5001/RemotesRun","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ad5001/RemotesRun","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ad5001%2FRemotesRun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ad5001%2FRemotesRun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ad5001%2FRemotesRun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ad5001%2FRemotesRun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ad5001","download_url":"https://codeload.github.com/Ad5001/RemotesRun/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ad5001%2FRemotesRun/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32029861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bash","bash-scripting","maintenance","remote-execution"],"created_at":"2024-11-16T00:10:01.551Z","updated_at":"2026-04-20T02:03:55.645Z","avatar_url":"https://github.com/Ad5001.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RemotesRun\n---\n*Run several scripts on remote servers automatically.*\n\nThis script allows you to execute common sequencially scripts on various servers. It can be use to quickly run maintainance scripts on several servers while having proper feedback when things go wrong.\n\n## Dependencies:\nThis script has several dependencies:\n- bash\n- awk\n- sshpass\n- docker on remote server if it does not have it.\n\n## How to use\n\n### Creating scripts\nFirst of all, you will need create the scripts that will be executed on the remote servers.     \n1. Head to the `remotes` directory\n2. Create a new directory named using the `user`@`host` pattern for the remote host and the user on it you want to execute the script on. (e.g: `root@example.org`) if it does not exist.\n3. Create a new script (the file name will be used as script name when it's executed at runtime).\n4. (optional) You can import common libraries by adding a comment on line two following this pattern : `# Requires: libraries/\u003cpath/to/library\u003e.sh`. You can import several libraries by separating them by a space. You can see the various default included libraries in the `libraries` directory.\n\n**Note**: The libraries/common.sh library will always be imported into the server so you don't need to reference it there.\n\nYou can see an example in `remotes/root@example.org/Update.sh`.\n\n### Run all scripts\n\nTo run all of thoses scripts, it's fairly simple: just execute the `run_all.sh` script.   \nIt will prompt you for the various passwords of the various hosts, or the passphrases if you have ssh keys setup, and then execute the scripts sequencially.  \n\n**Note**: If you enter skip in the password field, the current host will be skipped.\n\nIf you want to use another directory for your remotes scripts, you can set the `REMOTES` environement variable before launching the `run_all.sh` script like this:\n```bash\nREMOTES=/path/to/remotes ./run_all.sh\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fad5001%2Fremotesrun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fad5001%2Fremotesrun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fad5001%2Fremotesrun/lists"}