{"id":18825441,"url":"https://github.com/grycap/runall","last_synced_at":"2026-04-29T08:33:53.380Z","repository":{"id":118338102,"uuid":"126974864","full_name":"grycap/runall","owner":"grycap","description":null,"archived":false,"fork":false,"pushed_at":"2022-06-08T12:15:14.000Z","size":42,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-12T07:10:06.174Z","etag":null,"topics":["bash","bash-scripting","server","server-management","ssh"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grycap.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-27T11:15:30.000Z","updated_at":"2022-06-08T12:15:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"50c518ff-d8c0-4374-95ea-de4e362f46e1","html_url":"https://github.com/grycap/runall","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/grycap/runall","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grycap%2Frunall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grycap%2Frunall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grycap%2Frunall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grycap%2Frunall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grycap","download_url":"https://codeload.github.com/grycap/runall/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grycap%2Frunall/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32417829,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T06:29:02.080Z","status":"ssl_error","status_checked_at":"2026-04-29T06:29:00.631Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["bash","bash-scripting","server","server-management","ssh"],"created_at":"2024-11-08T00:59:34.581Z","updated_at":"2026-04-29T08:33:53.373Z","avatar_url":"https://github.com/grycap.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# runall\nAn utility to run a command (or a script) in multiple hosts, using ssh (useful for multiple host management)\n\n## Installation\n\n### From packages\n\nGet the appropriate package and install\n\n**Ubuntu**\n\n```\n$ wget https://github.com/grycap/runall/releases/download/1.2-beta0/runall_1.2-beta.0.deb\n$ apt update\n$ apt install -f ./runall_1.2-beta.0.deb\n```\n\n### From sources\n\nInstall dependencies\n\n**Ubuntu**\n\n```\n$ apt update \u0026\u0026 apt install -y bash libc-bin coreutils grep uuid-runtime gettext-base openssh-client\n```\n\n**CenOS**\n```\n$ yum update \u0026\u0026 yum install -y bash coreutils grep gettext openssh-clients\n```\n\nGet the code and execute\n\n```\n$ git clone https://github.com/dealfonso/runall\n$ cd runall\n$ ./runall --help\n```\n\n## Usage\n\nExamples of use\n\n```\nroot@ramses:~# runall --summarize --hostlist torito0[1-9] --hostlist torito[10-11] -- hostname\n\nSUMMARY:\nhosts:\ntorito01 torito02 torito03 torito04 torito05 torito06 torito07 torito08 torito09 torito10 torito11\n\ncommand:\nexport LANG=C\nexport LC_ALL=C\nhostname\n\npress return to continue (CTRL-C aborts) \ntorito01\ntorito02\ntorito03\ntorito04\ntorito05\ntorito06\ntorito07\ntorito08\ntorito09\ntorito10\ntorito11\n```\n\nWe can make the list of hosts persistent by adding it to the configuration file\n```\nroot@ramses:~# echo \"HOSTS=torito0[1-9],torito[10-11]\" \u003e\u003e /etc/runall/runall.conf\n```\n\nThen you can run commands like the next one:\n\n```\nroot@ramses:~# runall -X torito0[3-9] -- hostname\ntorito01\ntorito02\ntorito10\ntorito11\n```\n\nUsing the flag `-O` the list of hosts in the configuration file will be ignored, and flag `-l` also runs the command in the host (using command `hostname`):\n\n```\nroot@ramses:~# runall -H torito0[1-2] -O -l -- hostname\ntorito01\ntorito02\nramses\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrycap%2Frunall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrycap%2Frunall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrycap%2Frunall/lists"}