{"id":38746781,"url":"https://github.com/cloudlinux/kcare-scripts","last_synced_at":"2026-01-17T11:46:46.384Z","repository":{"id":44766713,"uuid":"334870650","full_name":"cloudlinux/kcare-scripts","owner":"cloudlinux","description":"Kernelcare scripts","archived":false,"fork":false,"pushed_at":"2025-08-04T11:26:10.000Z","size":28,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-11T05:47:16.787Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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/cloudlinux.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}},"created_at":"2021-02-01T07:49:05.000Z","updated_at":"2025-08-04T11:26:13.000Z","dependencies_parsed_at":"2022-09-19T05:52:20.418Z","dependency_job_id":null,"html_url":"https://github.com/cloudlinux/kcare-scripts","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cloudlinux/kcare-scripts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudlinux%2Fkcare-scripts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudlinux%2Fkcare-scripts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudlinux%2Fkcare-scripts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudlinux%2Fkcare-scripts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudlinux","download_url":"https://codeload.github.com/cloudlinux/kcare-scripts/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudlinux%2Fkcare-scripts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28508420,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T10:25:30.148Z","status":"ssl_error","status_checked_at":"2026-01-17T10:25:29.718Z","response_time":85,"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":[],"created_at":"2026-01-17T11:46:45.669Z","updated_at":"2026-01-17T11:46:46.376Z","avatar_url":"https://github.com/cloudlinux.png","language":"Python","readme":"# KernelChecker\n\n## kernelcheker.py\nKernelChecker was created to allow control panels to easily detect \u0026 advise\nusers on updating running kernel. It can be used to promote KernelCare\nthrough the control panel. One of the goals behind creating this script was to to make it easier for control\npanel providers to setup effective affiliate program with KernelCare to generate extra income.\nIf you are interested in affiliate program, contact us at sales@kernelcare.com\n\n\nThe purpose of KernelChecker is to determine if:\n  * newer kernel is available\n  * if update / reboot is needed\n  * if KernelCare (http://kernelcare.com) is installed\n  * if latest patches are installed using KernelCare\n\n\nThe script should work on dpkg \u0026 RPM based distributions. It should be able to detect if it is running inside container (Virtuozzo \u0026 LXC)\n\nBy defalt it produces YAML output. Additionally it understands --json / -j command line options that causes it to produce output in JSON\n\nUsage:\n```bash\npython kernelchecker.py [--json]\n```\n\nExample output:\n```YAML\nlatest : 3.13.0-79-generic\ncurrent : 3.13.0-79-generic\ndistro : dpkg\nneeds_update : False\nlatest_installed : True\nlatest_available : True\ninside_container : False\nkernelcare :\n  installed : False\n  up2date : False\n  supported : True\n```\n\n* latest --\u003e Latest available kernel\n* current --\u003e current booted kernel\n* distro --\u003e more like package manager, possible values: dpkg, rpm \u0026 unknown\n* needs_update --\u003e newer kernel exits, reboot will be needed\n* latest_installed --\u003e latest kernel already installed, no need to run yum update/etc...\n* inside_container --\u003e if True, other values could be ignored, as we are running inside container and cannot update kernel\n* kernelcare : installed --\u003e if True, KernelCare installed\n* kernelcare : up2date --\u003e if True, kernel is patched with all the security patches, no need to update kernel (even if needs_update shows up)\n* kernelcare : supported --\u003e if True, KernelCare supports this kernel, if False - KernelCare doesn't support this kernel\n\nSome example of usages / advising customer based on results:\n\n```\nif inside_container == True: do nothing\n// customer should not be advised to update/reboot no matter what\n// as customer doesn't have ability to do so. \n// Also, node kernel might be patched using KernelCare or other tools.\nelse if needs_update == False : customer running latest kernel, nothing needs to be done\nelse if kernelcare.up2date == True: nothing needs to be done, Kernel is patched with KernelCare\nelse if needs_update == False {\n  if kernelcare.installed: ask customer to run kcarectl --update\n  else if kernelcare.supported: ask customer to deploy KernelCare\n  else if latest_installed: ask customer to reboot\n  else: ask customer to update using yum update/apt-get update, and reboot_\n}\n```\n\n\n## kc-compat.py\nChecks if server is running kernel compatible with KernelCare.\nUsage:\n```bash\npython kc-compat.py [--silent|-q]\n```\n\nOutputs:\n- `COMPATIBLE` if kernel supported\n- `NEEDS REVIEW` manual validation is required\n- `UNSUPPORTED; INSIDE CONTAINER` if running inside a container\n- `CONNECTION ERROR; HTTP \u003ccode\u003e` or `CONNECTION ERROR; \u003creason\u003e` for network issues\n- `SYSTEM ERROR; \u003cerror\u003e` for file system issues\n- `UNEXPECTED ERROR; \u003cerror\u003e` for other errors\n\nIf --silent flag is provided -- doesn't print anything\n\nExit codes:\n- 0: compatible\n- 1: needs review\n- 2: unsupported, inside container\n- 3: connection error\n- 4: system error\n- 5: unexpected error\n\nAlternatively you can use: \n```bash\ncurl -s https://raw.githubusercontent.com/cloudlinux/kcare-scripts/master/kc-compat.py | python\n```\n\nor\n```bash\nwget -qq -O - https://raw.githubusercontent.com/cloudlinux/kcare-scripts/master/kc-compat.py | python\n```\n\n_Note: You cannot use exit code in this case, only output_\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudlinux%2Fkcare-scripts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudlinux%2Fkcare-scripts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudlinux%2Fkcare-scripts/lists"}