{"id":28646753,"url":"https://github.com/harisekhon/devops-perl-tools","last_synced_at":"2025-06-13T02:06:50.142Z","repository":{"id":6152167,"uuid":"7381474","full_name":"HariSekhon/DevOps-Perl-tools","owner":"HariSekhon","description":"25+ DevOps CLI Tools - Anonymizer, SQL ReCaser (MySQL, PostgreSQL, AWS Redshift, Snowflake, Apache Drill, Hive, Impala, Cassandra CQL, Microsoft SQL Server, Oracle, Couchbase N1QL, Dockerfiles), Hadoop HDFS \u0026 Hive tools, Solr/SolrCloud CLI, Nginx stats \u0026 HTTP(S) URL watchers for load-balanced web farms, Linux tools etc.","archived":false,"fork":false,"pushed_at":"2025-03-14T19:40:49.000Z","size":2235,"stargazers_count":94,"open_issues_count":2,"forks_count":43,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-03-14T20:29:06.265Z","etag":null,"topics":["anonymize","apache-drill","cassandra","couchbase","docker","hacktoberfest","hadoop","hbase","hdfs","hive","kerberos","linux","mysql","neo4j","nginx","recaser","solr","solrcloud","sql"],"latest_commit_sha":null,"homepage":"https://www.linkedin.com/in/HariSekhon","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HariSekhon.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-12-30T23:30:23.000Z","updated_at":"2025-03-14T19:40:53.000Z","dependencies_parsed_at":"2023-01-11T17:02:22.810Z","dependency_job_id":"13296a4b-ce8c-4581-b2d2-827b6dc7847c","html_url":"https://github.com/HariSekhon/DevOps-Perl-tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HariSekhon/DevOps-Perl-tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HariSekhon%2FDevOps-Perl-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HariSekhon%2FDevOps-Perl-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HariSekhon%2FDevOps-Perl-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HariSekhon%2FDevOps-Perl-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HariSekhon","download_url":"https://codeload.github.com/HariSekhon/DevOps-Perl-tools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HariSekhon%2FDevOps-Perl-tools/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259565561,"owners_count":22877347,"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","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":["anonymize","apache-drill","cassandra","couchbase","docker","hacktoberfest","hadoop","hbase","hdfs","hive","kerberos","linux","mysql","neo4j","nginx","recaser","solr","solrcloud","sql"],"created_at":"2025-06-13T02:06:49.434Z","updated_at":"2025-06-13T02:06:50.117Z","avatar_url":"https://github.com/HariSekhon.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hari Sekhon - DevOps Perl Tools\n\n[![GitHub stars](https://img.shields.io/github/stars/harisekhon/devops-perl-tools?logo=github)](https://github.com/HariSekhon/DevOps-Perl-tools/stargazers)\n[![GitHub forks](https://img.shields.io/github/forks/harisekhon/devops-perl-tools?logo=github)](https://github.com/HariSekhon/DevOps-Perl-tools/network)\n[![LineCount](https://sloc.xyz/github/HariSekhon/DevOps-Perl-tools/?badge-bg-color=2081C2)](https://github.com/boyter/scc/)\n[![Cocomo](https://sloc.xyz/github/HariSekhon/DevOps-Perl-tools/?badge-bg-color=2081C2\u0026category=cocomo)](https://github.com/boyter/scc/)\n[![License](https://img.shields.io/github/license/HariSekhon/DevOps-Perl-tools)](https://github.com/HariSekhon/DevOps-Perl-tools/blob/master/LICENSE)\n[![My LinkedIn](https://img.shields.io/badge/LinkedIn%20Profile-HariSekhon-blue?logo=data:image/svg%2bxml;base64,PHN2ZyByb2xlPSJpbWciIGZpbGw9IiNmZmZmZmYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+TGlua2VkSW48L3RpdGxlPjxwYXRoIGQ9Ik0yMC40NDcgMjAuNDUyaC0zLjU1NHYtNS41NjljMC0xLjMyOC0uMDI3LTMuMDM3LTEuODUyLTMuMDM3LTEuODUzIDAtMi4xMzYgMS40NDUtMi4xMzYgMi45Mzl2NS42NjdIOS4zNTFWOWgzLjQxNHYxLjU2MWguMDQ2Yy40NzctLjkgMS42MzctMS44NSAzLjM3LTEuODUgMy42MDEgMCA0LjI2NyAyLjM3IDQuMjY3IDUuNDU1djYuMjg2ek01LjMzNyA3LjQzM2MtMS4xNDQgMC0yLjA2My0uOTI2LTIuMDYzLTIuMDY1IDAtMS4xMzguOTItMi4wNjMgMi4wNjMtMi4wNjMgMS4xNCAwIDIuMDY0LjkyNSAyLjA2NCAyLjA2MyAwIDEuMTM5LS45MjUgMi4wNjUtMi4wNjQgMi4wNjV6bTEuNzgyIDEzLjAxOUgzLjU1NVY5aDMuNTY0djExLjQ1MnpNMjIuMjI1IDBIMS43NzFDLjc5MiAwIDAgLjc3NCAwIDEuNzI5djIwLjU0MkMwIDIzLjIyNy43OTIgMjQgMS43NzEgMjRoMjAuNDUxQzIzLjIgMjQgMjQgMjMuMjI3IDI0IDIyLjI3MVYxLjcyOUMyNCAuNzc0IDIzLjIgMCAyMi4yMjIgMGguMDAzeiIvPjwvc3ZnPgo=)](https://www.linkedin.com/in/HariSekhon/)\n[![GitHub Last Commit](https://img.shields.io/github/last-commit/HariSekhon/DevOps-Perl-tools?logo=github)](https://github.com/HariSekhon/DevOps-Perl-tools/commits/master)\n\n[![Codacy](https://app.codacy.com/project/badge/Grade/366f2da87b794566bbf194092752f25a)](https://www.codacy.com/gh/HariSekhon/DevOps-Perl-tools/dashboard)\n[![CodeFactor](https://www.codefactor.io/repository/github/harisekhon/DevOps-Perl-tools/badge)](https://www.codefactor.io/repository/github/harisekhon/DevOps-Perl-tools)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=HariSekhon_DevOps-Perl-tools\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=HariSekhon_DevOps-Perl-tools)\n[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=HariSekhon_DevOps-Perl-tools\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=HariSekhon_DevOps-Perl-tools)\n[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=HariSekhon_DevOps-Perl-tools\u0026metric=reliability_rating)](https://sonarcloud.io/dashboard?id=HariSekhon_DevOps-Perl-tools)\n[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=HariSekhon_DevOps-Perl-tools\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=HariSekhon_DevOps-Perl-tools)\n[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=HariSekhon_DevOps-Perl-tools\u0026metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=HariSekhon_DevOps-Perl-tools)\n\n[![Linux](https://img.shields.io/badge/OS-Linux-blue?logo=linux)](https://github.com/HariSekhon/DevOps-Perl-tools)\n[![Mac](https://img.shields.io/badge/OS-Mac-blue?logo=apple)](https://github.com/HariSekhon/DevOps-Perl-tools)\n[![Docker](https://img.shields.io/badge/container-Docker-blue?logo=docker\u0026logoColor=white)](https://hub.docker.com/r/harisekhon/perl-tools/)\n[![Dockerfile](https://img.shields.io/badge/repo-Dockerfiles-blue?logo=docker\u0026logoColor=white)](https://github.com/HariSekhon/Dockerfiles)\n[![DockerHub Pulls](https://img.shields.io/docker/pulls/harisekhon/perl-tools?label=DockerHub%20pulls\u0026logo=docker\u0026logoColor=white)](https://hub.docker.com/r/harisekhon/perl-tools)\n[![DockerHub Build Automated](https://img.shields.io/docker/automated/harisekhon/perl-tools?logo=docker\u0026logoColor=white)](https://hub.docker.com/r/harisekhon/perl-tools/)\n[![StarTrack](https://img.shields.io/badge/Star-Track-blue?logo=github)](https://seladb.github.io/StarTrack-js/#/preload?r=HariSekhon,Nagios-Plugins\u0026r=HariSekhon,Dockerfiles\u0026r=HariSekhon,DevOps-Python-tools\u0026r=HariSekhon,DevOps-Perl-tools\u0026r=HariSekhon,DevOps-Bash-tools\u0026r=HariSekhon,HAProxy-configs\u0026r=HariSekhon,SQL-scripts)\n[![StarCharts](https://img.shields.io/badge/Star-Charts-blue?logo=github)](https://github.com/HariSekhon/DevOps-Bash-tools/blob/master/STARCHARTS.md)\n\u003c!-- these badges don't work any more\n[![Docker Build Status](https://img.shields.io/docker/cloud/build/harisekhon/perl-tools?logo=docker\u0026logoColor=white)](https://hub.docker.com/r/harisekhon/perl-tools/builds)\n[![MicroBadger](https://images.microbadger.com/badges/image/harisekhon/perl-tools.svg)](http://microbadger.com/#/images/harisekhon/perl-tools)\n--\u003e\n\n[![CI Builds Overview](https://img.shields.io/badge/CI%20Builds-Overview%20Page-blue?logo=circleci)](https://harisekhon.github.io/CI-CD/)\n[![Jenkins](https://img.shields.io/badge/Jenkins-ready-blue?logo=jenkins\u0026logoColor=white)](https://github.com/HariSekhon/DevOps-Perl-tools/blob/master/Jenkinsfile)\n[![Concourse](https://img.shields.io/badge/Concourse-ready-blue?logo=concourse)](https://github.com/HariSekhon/DevOps-Perl-tools/blob/master/cicd/.concourse.yml)\n[![GoCD](https://img.shields.io/badge/GoCD-ready-blue?logo=go)](https://github.com/HariSekhon/DevOps-Perl-tools/blob/master/cicd/.gocd.yml)\n[![TeamCity](https://img.shields.io/badge/TeamCity-ready-blue?logo=teamcity)](https://github.com/HariSekhon/TeamCity-CI)\n\n[![CircleCI](https://circleci.com/gh/HariSekhon/DevOps-Perl-tools.svg?style=svg)](https://circleci.com/gh/HariSekhon/DevOps-Perl-tools)\n[![BuildKite](https://img.shields.io/buildkite/0a23f5b0b09f6b2a913e3e3fa258494edb0e8dcda2b40e19fa/master?label=BuildKite\u0026logo=buildkite)](https://buildkite.com/hari-sekhon/devops-perl-tools)\n[![AppVeyor](https://img.shields.io/appveyor/build/harisekhon/DevOps-Perl-tools/master?logo=appveyor\u0026label=AppVeyor)](https://ci.appveyor.com/project/HariSekhon/DevOps-Perl-tools/branch/master)\n[![Drone](https://img.shields.io/drone/build/HariSekhon/DevOps-Perl-tools/master?logo=drone\u0026label=Drone)](https://cloud.drone.io/HariSekhon/DevOps-Perl-tools)\n[![Codefresh](https://g.codefresh.io/api/badges/pipeline/harisekhon/GitHub%2FDevOps-Perl-tools?branch=master\u0026key=eyJhbGciOiJIUzI1NiJ9.NWU1MmM5OGNiM2FiOWUzM2Y3ZDZmYjM3.O69674cW7vYom3v5JOGKXDbYgCVIJU9EWhXUMHl3zwA\u0026type=cf-1)](https://g.codefresh.io/pipelines/edit/new/builds?id=5e58e2a9c1d3cf1248fa485b\u0026pipeline=DevOps-Perl-tools\u0026projects=GitHub\u0026projectId=5e52ca8ea284e00f882ea992\u0026context=github\u0026filter=page:1;pageSize:10;timeFrameStart:week)\n[![Cirrus CI](https://img.shields.io/cirrus/github/HariSekhon/DevOps-Perl-tools/master?logo=Cirrus%20CI\u0026label=Cirrus%20CI)](https://cirrus-ci.com/github/HariSekhon/DevOps-Perl-tools)\n[![Semaphore](https://harisekhon.semaphoreci.com/badges/DevOps-Perl-tools.svg)](https://harisekhon.semaphoreci.com/projects/DevOps-Perl-tools)\n[![Buddy](https://img.shields.io/badge/Buddy-ready-1A86FD?logo=buddy)](https://github.com/HariSekhon/DevOps-Perl-tools/blob/master/buddy.yml)\n[![Shippable](https://img.shields.io/badge/Shippable-legacy-lightgrey?logo=jfrog\u0026label=Shippable)](https://github.com/HariSekhon/DevOps-Perl-tools/blob/master/shippable.yml)\n[![Travis CI](https://img.shields.io/badge/TravisCI-ready-blue?logo=travis\u0026label=Travis%20CI)](https://github.com/HariSekhon/DevOps-Perl-tools/blob/master/.travis.yml)\n\n[![Azure DevOps Pipeline](https://dev.azure.com/harisekhon/GitHub/_apis/build/status/HariSekhon.DevOps-Perl-tools?branchName=master)](https://dev.azure.com/harisekhon/GitHub/_build/latest?definitionId=7\u0026branchName=master)\n[![GitLab Pipeline](https://img.shields.io/badge/GitLab%20CI-legacy-lightgrey?logo=gitlab)](https://gitlab.com/HariSekhon/DevOps-Perl-tools/pipelines)\n[![BitBucket Pipeline](https://img.shields.io/badge/Bitbucket%20CI-legacy-lightgrey?logo=bitbucket)](https://bitbucket.org/harisekhon/devops-perl-tools/addon/pipelines/home#!/)\n[![AWS CodeBuild](https://img.shields.io/badge/AWS%20CodeBuild-ready-blue?logo=amazon%20aws)](https://github.com/HariSekhon/DevOps-Perl-tools/blob/master/cicd/buildspec.yml)\n[![GCP Cloud Build](https://img.shields.io/badge/GCP%20Cloud%20Build-ready-blue?logo=google%20cloud\u0026logoColor=white)](https://github.com/HariSekhon/DevOps-Perl-tools/blob/master/cicd/cloudbuild.yaml)\n\n[![Repo on GitHub](https://img.shields.io/badge/repo-GitHub-2088FF?logo=github)](https://github.com/HariSekhon/DevOps-Perl-tools)\n[![Repo on GitLab](https://img.shields.io/badge/repo-GitLab-FCA121?logo=gitlab)](https://gitlab.com/HariSekhon/DevOps-Perl-tools)\n[![Repo on Azure DevOps](https://img.shields.io/badge/repo-Azure%20DevOps-0078D7?logo=azure%20devops)](https://dev.azure.com/harisekhon/GitHub/_git/DevOps-Perl-tools)\n[![Repo on BitBucket](https://img.shields.io/badge/repo-BitBucket-0052CC?logo=bitbucket)](https://bitbucket.org/HariSekhon/DevOps-Perl-tools)\n\n[![ShellCheck](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/shellcheck.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/shellcheck.yaml)\n[![JSON](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/json.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/json.yaml)\n[![YAML](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/yaml.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/yaml.yaml)\n[![XML](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/xml.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/xml.yaml)\n[![Markdown](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/markdown.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/markdown.yaml)\n[![Validation](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/validate.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/validate.yaml)\n[![Kics](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/kics.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/kics.yaml)\n[![Grype](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/grype.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/grype.yaml)\n[![Semgrep](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/semgrep.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/semgrep.yaml)\n[![Semgrep Cloud](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/semgrep-cloud.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/semgrep-cloud.yaml)\n[![Trivy](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/trivy.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/trivy.yaml)\n\n[![Docker Build (Alpine)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/docker_perl_alpine.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/docker_perl_alpine.yaml)\n[![Docker Build (Debian)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/docker_perl_debian.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/docker_perl_debian.yaml)\n[![Docker Build (Fedora)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/docker_perl_fedora.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/docker_perl_fedora.yaml)\n[![Docker Build (Ubuntu)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/docker_perl_ubuntu.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/docker_perl_ubuntu.yaml)\n\n[![GitHub Actions Ubuntu](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/GitHub%20Actions%20Ubuntu/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22GitHub+Actions+Ubuntu%22)\n[![Mac](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/mac.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/mac.yaml)\n[![Mac 11](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/mac_11.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/mac_11.yaml)\n[![Mac 12](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/mac_12.yaml/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions/workflows/mac_12.yaml)\n[![Ubuntu](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/Ubuntu/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22Ubuntu%22)\n[![Ubuntu 20.04](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/Ubuntu%2020.04/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22Ubuntu+20.04%22)\n[![Ubuntu 22.04](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/Ubuntu%2022.04/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22Ubuntu+22.04%22)\n[![Debian](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/Debian/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22Debian%22)\n[![Debian 10](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/Debian%2010/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22Debian+10%22)\n[![Debian 11](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/Debian%2011/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22Debian+11%22)\n[![Debian 12](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/Debian%2012/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22Debian+12%22)\n[![Fedora](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/Fedora/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22Fedora%22)\n[![Alpine](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/Alpine/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22Alpine%22)\n[![Alpine 3](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/Alpine%203/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22Alpine+3%22)\n\n[![Perl versions](https://img.shields.io/badge/Perl-5.10+-39457E?logo=perl)](https://github.com/HariSekhon/DevOps-Perl-tools)\n[![Perl](https://github.com/HariSekhon/DevOps-Perl-tools/workflows/Perl/badge.svg)](https://github.com/HariSekhon/DevOps-Perl-tools/actions?query=workflow%3A%22Perl%22)\n\n[git.io/perl-tools](https://git.io/perl-tools)\n\n## Linux, Web, Anonymizer, SQL ReCaser, Hadoop, Hive, Solr, Big Data \u0026 NoSQL Tools\n\nDevOps, Linux, SQL, Web, Big Data, NoSQL, templates for various programming languages and Kubernetes. All programs have\n`--help`.\n\nHari Sekhon\n\nCloud \u0026 Big Data Contractor, United Kingdom\n\n[![My LinkedIn](https://img.shields.io/badge/LinkedIn%20Profile-HariSekhon-blue?logo=data:image/svg%2bxml;base64,PHN2ZyByb2xlPSJpbWciIGZpbGw9IiNmZmZmZmYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+TGlua2VkSW48L3RpdGxlPjxwYXRoIGQ9Ik0yMC40NDcgMjAuNDUyaC0zLjU1NHYtNS41NjljMC0xLjMyOC0uMDI3LTMuMDM3LTEuODUyLTMuMDM3LTEuODUzIDAtMi4xMzYgMS40NDUtMi4xMzYgMi45Mzl2NS42NjdIOS4zNTFWOWgzLjQxNHYxLjU2MWguMDQ2Yy40NzctLjkgMS42MzctMS44NSAzLjM3LTEuODUgMy42MDEgMCA0LjI2NyAyLjM3IDQuMjY3IDUuNDU1djYuMjg2ek01LjMzNyA3LjQzM2MtMS4xNDQgMC0yLjA2My0uOTI2LTIuMDYzLTIuMDY1IDAtMS4xMzguOTItMi4wNjMgMi4wNjMtMi4wNjMgMS4xNCAwIDIuMDY0LjkyNSAyLjA2NCAyLjA2MyAwIDEuMTM5LS45MjUgMi4wNjUtMi4wNjQgMi4wNjV6bTEuNzgyIDEzLjAxOUgzLjU1NVY5aDMuNTY0djExLjQ1MnpNMjIuMjI1IDBIMS43NzFDLjc5MiAwIDAgLjc3NCAwIDEuNzI5djIwLjU0MkMwIDIzLjIyNy43OTIgMjQgMS43NzEgMjRoMjAuNDUxQzIzLjIgMjQgMjQgMjMuMjI3IDI0IDIyLjI3MVYxLjcyOUMyNCAuNzc0IDIzLjIgMCAyMi4yMjIgMGguMDAzeiIvPjwvc3ZnPgo=)](https://www.linkedin.com/in/HariSekhon/)\n\u003cbr\u003e*(you're welcome to connect with me on LinkedIn)*\n\n**Make sure you run `make update` if updating and not just `git pull` as you will often need the latest library\nsubmodule and possibly new upstream libraries**\n\n## Quick Start\n\n### Ready to run Docker image\n\nAll programs and their pre-compiled dependencies can be found ready to run on\n[DockerHub](https://hub.docker.com/r/harisekhon/tools/).\n\nList all programs:\n\n```bash\ndocker run harisekhon/perl-tools\n```\n\nRun any given program:\n\n```bash\ndocker run harisekhon/perl-tools \u003cprogram\u003e \u003cargs\u003e\n```\n\n### Automated Build from source\n\ninstalls git, make, pulls the repo and build the dependencies:\n\n```bash\ncurl -L https://git.io/perl-bootstrap | sh\n```\n\nor manually\n\n```bash\ngit clone https://github.com/HariSekhon/DevOps-Perl-tools perl-tools\ncd perl-tools\nmake\n```\n\nMake sure to read\n[Detailed Build Instructions](https://github.com/HariSekhon/DevOps-Perl-tools#detailed-build-instructions)\nfurther down for more information.\n\n#### Optional: Generate self-contained Perl scripts with all dependencies built in to each file for easy distribution\n\nAfter the `make` build has finished, if you want to make self-contained versions of all the perl scripts with all\ndependencies included for copying around, run:\n\n```bash\nmake fatpacks\n```\n\nThe self-contained scripts will be available in the `fatpacks/` directory which is also tarred to `fatpacks.tar.gz`.\n\n### Usage\n\nAll programs come with a `--help` switch which includes a program description and the list of command line options.\n\nEnvironment variables are supported for convenience and also to hide credentials from being exposed in the process list\neg. `$PASSWORD`. These are indicated in the `--help` descriptions in brackets next to each option and often have more\nspecific overrides with higher precedence eg. `$SOLR_HOST` takes priority over `$HOST`.\n\n### DevOps Perl Tools - Inventory\n\n**NOTE: Hadoop HDFS API Tools, Pig =\u003e Elasticsearch/Solr, Pig Jython UDFs and authenticated PySpark IPython Notebook\nhave moved to my [DevOps Python Tools](https://github.com/HariSekhon/DevOps-Python-tools) repo**\n\n#### Linux\n\n- `anonymize.pl` - anonymizes your configs / logs from files or stdin (for pasting to Apache Jira tickets or mailing\n- lists)\n  - anonymizes:\n    - hostnames / domains / FQDNs\n    - email addresses\n    - IP + MAC addresses\n    - Kerberos principals\n    - [Cisco](https://www.cisco.com) \u0026\n      [Juniper](https://www.juniper.net) [ScreenOS](https://www.juniper.net/documentation/product/en_US/screenos)\n      configurations passwords, shared keys and SNMP strings\n  - `anonymize_custom.conf` - put regex of your Name/Company/Project/Database/Tables to anonymize to `\u003ccustom\u003e`\n    placeholder tokens indicate what was stripped out (eg. `\u003cfqdn\u003e`, `\u003cpassword\u003e`, `\u003ccustom\u003e`)\n  - `--ip-prefix` leaves the last IP octect to aid in cluster debugging to still see differentiated nodes communicating\n    with each other to compare configs and log communications\n- `diffnet.pl` - simplifies diff output to show only lines added/removed, not moved, from patch files or stdin (pipe\n  from standard `diff` or `git diff` commands)\n- `xml_diff.pl` / `hadoop_config_diff.pl` - tool to help find differences between XML / Hadoop configs, can diff XML\n  from HTTP addresses to diff live running clusters\n- `titlecase.pl` - capitalizes the first letter of each input word in files or stdin\n- `pdf_to_txt.pl` - converts PDF to text for analytics (see also [Apache PDFBox](https://pdfbox.apache.org/) and\n  pdf2text unix tool)\n- `java_show_classpath.pl` - shows Java classpaths, one per line, of currently running Java programs\n- `flock.pl` - file locking to prevent running the same program twice at the same time. RHEL 6 now has a native version\n  of this\n- `uniq_order_preserved.pl` - like `uniq` but you don't have to sort first and it preserves the ordering\n- `colors.pl` - prints ASCII color code matrix of all foreground + background combinations showing the corresponding\n  terminal escape codes to help with tuning your shell\n- `matrix.pl` - prints a cool matrix of vertical scrolling characters using terminal tricks\n- `welcome.pl` - cool spinning welcome message greeting your username and showing last login time and user to put in\n  your shell's `.profile` (there is also a python version in my\n  [DevOps Python Tools](https://github.com/HariSekhon/DevOps-Python-tools) repo)\n\n#### SQL\n\nWritten to help clean up docs and SQL scripts.\n\nI don't even bother writing capitalised SQL code any more I\njust run it through this via a vim shortcut\n([.vimrc](https://github.com/HariSekhon/DevOps-Bash-tools/blob/master/configs/.vimrc)).\n\n- `sqlcase.pl` - capitalizes [SQL](https://en.wikipedia.org/wiki/SQL) code in files or stdin:\n  - `*case.pl` - more specific language support for just about every database and SQL-like language out there plus a few\n    more non-SQL languages like [Neo4j](https://neo4j.com) [Cypher](https://neo4j.com/developer/cypher-query-language/)\n    and [Docker](https://www.docker.com)'s [Dockerfiles](https://docs.docker.com/engine/reference/builder/):\n    - `athenacase.pl` - [AWS Athena](https://aws.amazon.com/athena/) SQL\n    - `cqlcase.pl` - [Cassandra](http://cassandra.apache.org/) [CQL](http://cassandra.apache.org/doc/latest/cql/)\n    - `cyphercase.pl` - [Neo4j](https://neo4j.com) [Cypher](https://neo4j.com/developer/cypher-query-language/)\n    - `dockercase.pl` - [Docker](https://www.docker.com) ([Dockerfiles](https://docs.docker.com/engine/reference/builder/))\n    - `drillcase.pl` - [Apache Drill](https://drill.apache.org/) SQL\n    - `hivecase.pl` - [Hive](https://hive.apache.org) [HQL](https://cwiki.apache.org/confluence/display/Hive/LanguageManual)\n    - `impalacase.pl` - [Impala](https://impala.apache.org) SQL\n    - `influxcase.pl` - [InfluxDB](https://www.influxdata.com) [InfluxQL](https://docs.influxdata.com/influxdb/v1.7/query_language/spec/)\n    - `mssqlcase.pl` - [Microsoft SQL Server](https://en.wikipedia.org/wiki/Microsoft_SQL_Server) SQL\n    - `mysqlcase.pl` - [MySQL](https://www.mysql.com) SQL\n    - `n1qlcase.pl` - [Couchbase](https://www.couchbase.com/) [N1QL](https://www.couchbase.com/products/n1ql)\n    - `oraclecase.pl` / `plsqlcase.pl` - [Oracle](https://www.oracle.com/uk/index.html) SQL\n    - `postgrescase.pl` / `pgsqlcase.pl` - [PostgreSQL](https://www.postgresql.org) SQL\n    - `pigcase.pl` - [Pig](https://pig.apache.org) [Latin](https://pig.apache.org/docs/r0.17.0/basic.html)\n    - `prestocase.pl` - [Presto](https://prestosql.io/) SQL\n    - `redshiftcase..pl` - [AWS Redshift](https://aws.amazon.com/redshift/) SQL\n    - `snowflakecase..pl` - [Snowflake](https://www.snowflake.com) SQL\n\n#### Web\n\n- `watch_url.pl` - watches a given url, outputting status code and optionally selected output\n  - Useful for debugging web farms behind load balancers and seeing the distribution to different servers\n  - Tip: set a /hostname handler to return which server you're hitting for each request in real-time\n  - I also use this a ping replacement to google.com to check\n  internet networking in environments where everything except HTTP traffic is blocked\n- `watch_nginx_stats.pl` - watches nginx stats via the `HttpStubStatusModule` module\n\n#### Solr\n\n- `solr_cli.pl` - [Solr](https://lucene.apache.org/solr/) CLI tool for fast and easy\n  [Solr](https://lucene.apache.org/solr/) / [SolrCloud](https://lucene.apache.org/solr/guide/6_6/solrcloud.html)\n  administration. Supports optional environment variables to minimize --switches (can be set permanently in\n  `solr/solr-env.sh`). Uses the Solr Cores and Collections APIs, makes Solr administration a lot easier\n\n#### Hadoop Ecosystem\n\n- `ambari_freeipa_kerberos_setup.pl` - Automates Hadoop [Ambari](https://ambari.apache.org/) cluster security Kerberos\n  setup of [FreeIPA](https://www.freeipa.org/page/Main_Page) principals and keytab distribution to the cluster nodes\n- `hadoop_hdfs_file_age_out.pl` - prints or removes all [Hadoop HDFS](https://hadoop.apache.org/) files in a given\n  directory tree older than a specified age\n- `hadoop_hdfs_snapshot_age_out.pl` - prints or removes [Hadoop HDFS](https://hadoop.apache.org/) snapshots older than a\n  given age or matching a given regex pattern\n- `hbase_flush_tables.sh` - flushes all or selected [HBase](https://hbase.apache.org/) tables (useful when bulk loading\n  [OpenTSDB](http://opentsdb.net/) with Durability.SKIP_WAL) (there is also a Python version of this in my\n  [DevOps Python Tools](https://github.com/HariSekhon/DevOps-Python-tools) repo)\n- `hive_to_elasticsearch.pl` - bulk indexes structured [Hive](https://hive.apache.org/) tables in\n  [Hadoop](https://hadoop.apache.org/) to [Elasticsearch](https://www.elastic.co/) clusters - includes support for\n  Kerberos, Hive partitioned tables with selected partitions, selected columns, index creation with configurable\n  sharding, index aliasing and optimization\n- `hive_table_print_null_columns.pl` - finds [Hive](https://hive.apache.org/) columns with all NULLs (see newer versions\n  in [DevOps Python tools](https://github.com/HariSekhon/DevOps-Python-tools) repo for [HiveServer2](https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Overview) and [Impala](https://impala.apache.org/))\n- `hive_table_count_rows_with_nulls.pl` - counts number of rows containing NULLs in any field\n- `pentaho_backup.pl` - script to back up the local [Pentaho](https://marketplace.hitachivantara.com/pentaho/) BA or DI\n  Server\n- `ibm_bigsheets_config_git.pl` - revision controls\n  [IBM BigSheets](https://www.ibm.com/support/knowledgecenter/SSPT3X_3.0.0/com.ibm.swg.im.infosphere.biginsights.analyze.doc/doc/c0057518.html)\n  configurations from API to Git\n- `datameer_config_git.pl` - revision controls [Datameer](https://www.datameer.com/) configurations from API to Git\n- `hadoop_config_diff.pl` - tool to diff configs between [Hadoop](https://hadoop.apache.org/) clusters XML from files or\n  live HTTP config endpoints\n\n### Detailed Build Instructions\n\nThe `make` command will initialize my library submodule and  use `sudo` to install the required system packages and CPAN\nmodules. If you want more control over what is installed you must follow the\n[Manual Setup](https://github.com/HariSekhon/DevOps-Perl-tools#manual-setup) section instead.\n\n#### Perlbrew localized installs\n\nThe automated build will use 'sudo' to install required Perl CPAN libraries to the system unless running as root or it\ndetects being inside Perlbrew. If you want to install some of the common Perl libraries such as `Net::DNS` and `LWP::*`\nusing your OS packages instead of installing from CPAN then follow the Manual Build section below.\n\n### Manual Setup\n\nEnter the tools directory and run git submodule init and git submodule update to fetch my library repo and then install\nthe CPAN modules as mentioned further down:\n\n```bash\ngit clone https://github.com/HariSekhon/DevOps-Perl-tools perl-tools\ncd tools\ngit submodule update --init\n```\n\nThen proceed to install the CPAN modules below by hand.\n\n#### CPAN Modules\n\nInstall the following CPAN modules using the cpan command, using `sudo` if you're not root:\n\n```bash\nsudo cpan JSON LWP::Simple LWP::UserAgent Term::ReadKey Text::Unidecode Time::HiRes XML::LibXML XML::Validate ...\n```\n\nThe full list of CPAN modules is in `setup/cpan-requirements.txt`.\n\nYou can install the entire list of cpan requirements like so:\n\n```bash\nsudo cpan $(sed 's/#.*//' \u003c setup/cpan-requirements.txt)\n```\n\nYou're now ready to use these programs.\n\n#### Offline Setup\n\nDownload the Tools and Lib git repos as zip files:\n\n[https://github.com/HariSekhon/DevOps-Perl-tools/archive/master.zip](https://github.com/HariSekhon/DevOps-Perl-tools/archive/master.zip)\n\n[https://github.com/HariSekhon/lib/archive/master.zip](https://github.com/HariSekhon/lib/archive/master.zip)\n\nUnzip both and move Lib to the `lib` folder under Tools.\n\n```bash\nunzip devops-perl-tools-master.zip\nunzip lib-master.zip\n\nmv -v devops-perl-tools-master perl-tools\nmv -v lib-master lib\nmv -vf lib perl-tools/\n```\n\nProceed to install CPAN modules for whichever programs you want to use using your standard procedure - usually an\ninternal mirror or proxy server to CPAN, or rpms / debs (some libraries are packaged by Linux distributions).\n\nAll CPAN modules are listed in the `setup/cpan-requirements.txt` file.\n\n### Configuration for Strict Domain / FQDN validation\n\nStrict validations include host/domain/FQDNs using TLDs which are populated from the official IANA list. This is done\nvia my [Lib](https://github.com/HariSekhon/lib) submodule - see there for details on configuring to permit custom TLDs\nlike `.local`, `.intranet`, `.vm`, `.cloud` etc. (all already included in there because they're common across companies\ninternal environments).\n\n### Updating\n\nRun `make update`. This will git pull and then git submodule update which is necessary to pick up corresponding library\nupdates.\n\nIf you update often and want to just quickly git pull + submodule update but skip rebuilding all those dependencies each\ntime then run `make update-no-recompile` (will miss new library dependencies - do full `make update` if you encounter\nissues).\n\n### Testing\n\n[Continuous Integration](https://travis-ci.org/HariSekhon/devops-perl-tools) is run on this repo with tests for success\nand failure scenarios:\n\n- unit tests for the custom supporting [perl library](https://github.com/HariSekhon/lib)\n- integration tests of the top level programs using the libraries for things like option parsing\n- [functional tests](https://github.com/HariSekhon/DevOps-Perl-tools/tree/master/tests) for the top level programs using\n  local test data and [Docker containers](https://hub.docker.com/u/harisekhon/)\n\nTo trigger all tests run:\n\n```bash\nmake test\n```\n\nwhich will start with the underlying libraries, then move on to top level integration tests and functional tests using\ndocker containers if docker is available.\n\n### Contributions\n\nPatches, improvements and even general feedback are welcome in the form of GitHub pull requests and issue tickets.\n\nYou might also be interested in the following really nice Jupyter notebook for HDFS space analysis created by another\nHortonworks guy Jonas Straub:\n\n[https://github.com/mr-jstraub/HDFSQuota/blob/master/HDFSQuota.ipynb](https://github.com/mr-jstraub/HDFSQuota/blob/master/HDFSQuota.ipynb)\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=HariSekhon/DevOps-Perl-tools\u0026type=Date)](https://star-history.com/#HariSekhon/DevOps-Perl-tools\u0026Date)\n\n[git.io/perl-tools](https://git.io/perl-tools)\n\n## More Core Repos\n\n\u003c!-- OTHER_REPOS_START --\u003e\n\n### Knowledge\n\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Knowledge-Base\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Knowledge-Base)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Diagrams-as-Code\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Diagrams-as-Code)\n\n\u003c!--\n\nNot support on GitHub Markdown:\n\n\u003ciframe src=\"https://raw.githubusercontent.com/HariSekhon/HariSekhon/main/knowledge.md\" width=\"100%\" height=\"500px\"\u003e\u003c/iframe\u003e\n\nDoes nothing:\n\n\u003cembed src=\"https://raw.githubusercontent.com/HariSekhon/HariSekhon/main/knowledge.md\" width=\"100%\" height=\"500px\" /\u003e\n\n--\u003e\n\n### DevOps Code\n\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=DevOps-Bash-tools\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/DevOps-Bash-tools)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=DevOps-Python-tools\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/DevOps-Python-tools)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=DevOps-Perl-tools\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/DevOps-Perl-tools)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=DevOps-Golang-tools\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/DevOps-Golang-tools)\n\n\u003c!--\n[![Gist Card](https://github-readme-stats.vercel.app/api/gist?id=f8f551332440f1ca8897ff010e363e03)](https://gist.github.com/HariSekhon/f8f551332440f1ca8897ff010e363e03)\n--\u003e\n\n### Containerization\n\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Kubernetes-configs\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Kubernetes-configs)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Dockerfiles\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Dockerfiles)\n\n### CI/CD\n\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=GitHub-Actions\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/GitHub-Actions)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Jenkins\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Jenkins)\n\n### DBA - SQL\n\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=SQL-scripts\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/SQL-scripts)\n\n### DevOps Reloaded\n\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Nagios-Plugins\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Nagios-Plugins)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=HAProxy-configs\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/HAProxy-configs)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Terraform\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Terraform)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Packer-templates\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Packer-templates)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Nagios-Plugin-Kafka\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Nagios-Plugin-Kafka)\n\n### Templates\n\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Templates\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Templates)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Template-repo\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Template-repo)\n\n### Misc\n\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Spotify-tools\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Spotify-tools)\n[![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=HariSekhon\u0026repo=Spotify-playlists\u0026theme=ambient_gradient\u0026description_lines_count=3)](https://github.com/HariSekhon/Spotify-playlists)\n\nThe rest of my original source repos are\n[here](https://github.com/HariSekhon?tab=repositories\u0026q=\u0026type=source\u0026language=\u0026sort=stargazers).\n\nPre-built Docker images are available on my [DockerHub](https://hub.docker.com/u/harisekhon/).\n\n\u003c!-- 1x1 pixel counter to record hits --\u003e\n![](https://hit.yhype.me/github/profile?user_id=2211051)\n\n\u003c!-- OTHER_REPOS_END --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharisekhon%2Fdevops-perl-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharisekhon%2Fdevops-perl-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharisekhon%2Fdevops-perl-tools/lists"}