{"id":27359688,"url":"https://github.com/rackerlabs/configsnap","last_synced_at":"2025-04-13T00:34:06.043Z","repository":{"id":45470808,"uuid":"64300205","full_name":"rackerlabs/configsnap","owner":"rackerlabs","description":"Gather and compare Linux system state","archived":false,"fork":false,"pushed_at":"2023-11-27T17:38:30.000Z","size":204,"stargazers_count":37,"open_issues_count":3,"forks_count":18,"subscribers_count":32,"default_branch":"master","last_synced_at":"2025-04-13T00:33:49.807Z","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/rackerlabs.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}},"created_at":"2016-07-27T10:38:44.000Z","updated_at":"2024-11-12T20:24:52.000Z","dependencies_parsed_at":"2023-11-20T21:42:25.838Z","dependency_job_id":null,"html_url":"https://github.com/rackerlabs/configsnap","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rackerlabs%2Fconfigsnap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rackerlabs%2Fconfigsnap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rackerlabs%2Fconfigsnap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rackerlabs%2Fconfigsnap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rackerlabs","download_url":"https://codeload.github.com/rackerlabs/configsnap/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650498,"owners_count":21139670,"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":[],"created_at":"2025-04-13T00:34:05.521Z","updated_at":"2025-04-13T00:34:06.032Z","avatar_url":"https://github.com/rackerlabs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# configsnap\n\nRecords useful system state information, and compare to previous state if run\nwith PHASE containing \"post\" or \"rollback\".\n\nTested and packaged for RHEL and it's derivatives through the EPEL repository.\nPackages are also supplied for recent Debian based systems, however they are\nless tested.\n\n```\nUsage: configsnap [options]\n\nRecord useful system state information, and compare to previous state if run\nwith PHASE containing \"post\" or \"rollback\". A default config file,\n/etc/configsnap/additional.conf, can be customised to include extra files, directories\nor commands to register during configsnap execution.\n\nOptions:\n  -h, --help            show this help message and exit\n  -w, --overwrite       if phase files already exist in tag dir, remove\n                        previously collected data with that tag\n  -a, --archive         pack output files into a tar archive\n  -v, --verbose         print debug info\n  -V, --version         print version\n  -s, --silent          no output to stdout\n  --force-compare       Force a comparison after collecting data\n  -t TAG, --tag=TAG     tag identifer (e.g. a ticket number)\n  -d BASEDIR, --basedir=BASEDIR\n                        base directory to store output\n  -p PHASE, --phase=PHASE\n                        phase this is being used for. Can be any string.\n                        Phases containing  post  or  rollback  will perform\n                        diffs\n  -C, --compare-only    Compare existing files with tags specified with --pre\n                        and --phase\n  --pre=PRE_SUFFIX      suffix for files captured at previous state, for\n                        comparison\n  -c CONFIG, --config=CONFIG\n                        additional config file to use. Setting this will\n                        override default.\n```\n\nExample output:\n```\n# ./configsnap -t junepatching -p pre\nGetting storage details (LVM, partitions, PowerPath)...\nGetting process list...\nGetting package list and enabled services...\nGetting network details and listening services...\nGetting cluster status...\nGetting misc (dmesg, lspci, sysctl)...\nGetting Dell hardware information...\nCopying files...\n /boot/grub/grub.conf\n /etc/fstab\n /etc/hosts\n /etc/sysconfig/network\n /etc/yum.conf\n /proc/cmdline\n /proc/cpuinfo\n /proc/meminfo\n /proc/mounts\n /proc/scsi/scsi\n /etc/sysconfig/network-scripts/ifcfg-eth3\n /etc/sysconfig/network-scripts/ifcfg-lo\n /etc/sysconfig/network-scripts/ifcfg-eth1\n /etc/sysconfig/network-scripts/ifcfg-eth0\n /etc/sysconfig/network-scripts/ifcfg-eth2\n /etc/sysconfig/network-scripts/route-eth2\n\n\nFinished! Backups were saved to /root/junepatching/configsnap/*.pre\n```\n\nCustom collection of additional command output (Type: command) and files (Type:\nfile) can be configured in the file /etc/configsnap/additional.conf, for\nexample:\n\n```\n[psspecial]\nType: command\nCommand: /bin/ps -aux\nCompare: True\n     # Recording the output of a command into a \"psspecial.\u003cphase\u003e\" file containing the output.\n\n[debconf.conf]\nType: file\nFile: /etc/debconf.conf\nFailok: True\n     # Recording an additional file, stored as \"debconf.\u003cphase\u003e\"\n\n[ssh]\nType: directory\nDirectory: /etc/ssh/\n     # Recursively Recording all files from /etc/ssh/ directory, with sub-files appended with \".\u003cphase\u003e\".\n\n[fail2ban]\nType: directory\nDirectory: /etc/fail2ban\nFile_Pattern: .*\\.local$\n     #  Recording  all  files  from  /etc/fail2ban/  directory  matching  '.*\\.local$', with sub-files\n     appended with \".\u003cphase\u003e\"\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frackerlabs%2Fconfigsnap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frackerlabs%2Fconfigsnap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frackerlabs%2Fconfigsnap/lists"}