Etckeeper lets you keep
/etc under version control.
Install the package.
The preferred version control system (default is git) and other options are to be configured in
Etckeeper supports using pacman as a
After configuration the repository for the
/etc path has to be initialized:
# etckeeper init
To track other changes to the
/etc path, you need to either commit changes manually (see the etckeeper(8) man page for commands) or use one of the stopgap solutions below.
Service and timer units are included in the package. Simply enable
There is a cron script in the source distribution at
You can use this script to automatically commit changes on a schedule.
To make it run daily, for example, make sure you have cron installed and enabled,
then simply copy the script from the srcdir where you built etckeeper to
and make sure it is executable (e.g.
chmod +x /path/to/script).
As an alternative to the above, you could set up incron to automatically commit changes using etckeeper whenever a file in
/etc is modified.
Automatic push to remote repo
Whilst having a local backup in
/etc/.git is a good first step, etckeeper can automatically push your changes on each commit to a remote repository such as Github. Create an executable file
#!/bin/sh set -e if [ "$VCS" = git ] && [ -d .git ]; then cd /etc/ git push origin master fi
etc/.git and add your remote Github repository:
# git remote add origin https://github.com/user/repo.git
Now each time you run your wrapper script or alias from above, changes will be automatically commited to your Github repo.
If you want to track changes of a frequently executed command (e.g.
command), a simple wrapper script can help to automate it. For example, create:
#!/bin/bash etckeeper pre-install command etckeeper post-install
and make it executable. Alternatively, you may call the Etckeeper commands via a bash alias or function, see Bash#Aliases for more information.