{"id":19456459,"url":"https://github.com/dangnh0611/restart_server","last_synced_at":"2025-10-06T21:54:05.376Z","repository":{"id":179247763,"uuid":"288891738","full_name":"dangnh0611/restart_server","owner":"dangnh0611","description":"Restart server: start services, logging, health-check","archived":false,"fork":false,"pushed_at":"2020-08-21T04:47:01.000Z","size":255,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-25T10:52:09.807Z","etag":null,"topics":["cronjobs","health-check","netdata"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dangnh0611.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-08-20T02:59:31.000Z","updated_at":"2021-03-31T16:13:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"6e655ce1-73e7-40ec-913d-295dece8804b","html_url":"https://github.com/dangnh0611/restart_server","commit_stats":null,"previous_names":["dangnh0611/restart_server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dangnh0611/restart_server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangnh0611%2Frestart_server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangnh0611%2Frestart_server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangnh0611%2Frestart_server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangnh0611%2Frestart_server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dangnh0611","download_url":"https://codeload.github.com/dangnh0611/restart_server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangnh0611%2Frestart_server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278686638,"owners_count":26028325,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"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":["cronjobs","health-check","netdata"],"created_at":"2024-11-10T17:17:16.887Z","updated_at":"2025-10-06T21:54:05.340Z","avatar_url":"https://github.com/dangnh0611.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# restart_server\nrestart server: schedule shutdown, start/stop/restart services, logging, health-check  \n\n---\n\nTable of contents:\n  - [Health-check on agents](#health-check-on-agents)\n    - [Install Netdata](#install-netdata)\n    - [Enable GPU monitoring](#enable-gpu-monitoring)\n    - [Multihost monitoring](#multihost-monitoring)\n  - [Cronjobs](#cronjobs)\n  - [Startup jobs](#startup-jobs)\n  - [Sample](#sample)\n\n---\n## Health-check on agents\n### Install Netdata\nNetdata can be easily downloaded and installed via `curl` and installer script:\n```bash\n$ bash \u003c(curl -Ss https://my-netdata.io/kickstart.sh) --stable-channel --disable-telemetry\n```\n\u003eMore: https://learn.netdata.cloud/docs/agent/packaging/installer\n### Enable GPU monitoring\nGPU monitoring function requires `nvidia-smi` as dependence. By default, nvidia-smi is already installed with nvidia driver. First, make sure that nvidia-smi is available on your host:\n```bash\n$ nvidia-smi -h\n```\nIf not, install/re-install the nvidia driver and make sure `nvidia-smi` works well.  \nEdit configuration file:\n- ``` bash\n    $ cd /etc/netdata\n    ```\n- Edit the configuration file at `/usr/lib/netdata/conf.d/python.d.conf`, e.g \n    ```bash\n    $ sudo nano /usr/lib/netdata/conf.d/python.d.conf\n    ```\n- Remove the hash `#` at the line contain `nvidia_smi: yes` to enable the nvidia-smi extension.\n- Save the configuration file\n- Restart Netdata service:\n    ```bash\n    $ sudo systemctl restart netdata\n    # or\n    $ sudo service netdata restart\n    ```\n\nOnce enabled, visit netdata web UI at http://localhost:19999/  \nVerify that gpu monitoring is enabled  \n![nvidia-smi](screenshots/nvidia-smi_extension.png)   \n![gpu_monitor](screenshots/gpu_monitor.png)\n\n### Multihost monitoring\nNetdata does its jobs by running an unique Netdata service on each hosts.\nTo claim nodes or easily multi-hosts monitoring, follow the instructions of [Cloud intergrating](https://learn.netdata.cloud/docs/agent/agent-cloud) or [Claiming your nodes](https://learn.netdata.cloud/docs/agent/claim).\n\n## Cronjobs\nUse root's crontab to edit crontab configuration:\n```bash\nsudo crontab -e\n```\n\u003eNote: sudo is needed if cronjobs you want to perform need the root privilege. Otherwise, sudo is not necessary.\n\nQuotes: \n```\nusage:  crontab [-u user] file\n        crontab [ -u user ] [ -i ] { -e | -l | -r }\n                (default operation is replace, per 1003.2)\n        -e      (edit user's crontab)\n        -l      (list user's crontab)\n        -r      (delete user's crontab)\n        -i      (prompt before deleting user's crontab)\n```\nAdd or remove lines to suite your need with the following template:\n```bash\nm h dom mon dow command\n# more detail\n\u003cminute\u003e \u003chour\u003e \u003cday_of_month\u003e \u003cmonth\u003e \u003cday_of_week\u003e \u003ccommand\u003e\n```\nand\n- `*`: all possible values\n- `value1-value2`: value in the range [value1, value2].\n- `v1, v2, v3`: value in a set\n- `range/jump`: in range with a jump value, *i.e `*/4` mean each 4 units*\n- Some quick anotations: `@reboot`, `@hourly`,..\n\n## Startup jobs\nAdd the following line to crontab configuration as in [Cronjobs](#cronjobs) section above:\n```\n@reboot command\n```\ni.e `@reboot ls -la \u003e ~/log.txt`\n\n## Sample\n- Edit scripts in [scripts/](scripts/).\n- ```bash\n  $ sudo chmod -R +x scripts/\n  $ sudo cp -a scripts/.  /usr/local/sbin/\n    ```  \n- Sample crontab configurations:\n    ```bash\n    # Start services and programs at system start\n    @reboot sudo start.sh \u003e\u003e /var/log/start.log 2\u003e\u00261\n    # Stop/cleanup services, terminate programs then shutdown\n    0 0 * * * sudo stop.sh \u003e\u003e /var/log/stop.log 2\u003e\u00261 \u0026\u0026 shutdown +15 \"Crontab warning: This computer will be turned off in less than 15 mins.\"\n    # Service health-check and restart if needed each 30 minutes\n    */30 * * * * sudo service-check.sh \u003e\u003e /var/log/service-check.log 2\u003e\u00261\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdangnh0611%2Frestart_server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdangnh0611%2Frestart_server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdangnh0611%2Frestart_server/lists"}