Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jackarain/autogit
用于自动提交某个目录下所有文件到 git 仓库,实现自动目录备份到 git 仓库的功能。(This is an automated program for backing up directories. Its main function is to automatically commit and push a Git repository directory to a Git backup server.)
https://github.com/jackarain/autogit
autobackups dir-monitor directory-monitoring filesystemwatcher gitbackup gitwatch watchdir
Last synced: 15 days ago
JSON representation
用于自动提交某个目录下所有文件到 git 仓库,实现自动目录备份到 git 仓库的功能。(This is an automated program for backing up directories. Its main function is to automatically commit and push a Git repository directory to a Git backup server.)
- Host: GitHub
- URL: https://github.com/jackarain/autogit
- Owner: Jackarain
- License: gpl-2.0
- Created: 2023-05-11T02:12:02.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-12-10T12:37:50.000Z (about 1 year ago)
- Last Synced: 2024-10-31T19:12:16.645Z (2 months ago)
- Topics: autobackups, dir-monitor, directory-monitoring, filesystemwatcher, gitbackup, gitwatch, watchdir
- Language: C++
- Homepage:
- Size: 67.5 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# autogit
中文 | [English](README_EN.md)
\
\
这是一个自动化备份 `Git` 仓库目录的程序,其主要功能是针对一个 `Git` 仓库目录,自动添加目录下所有文件提交并推送到 `Git` 服务器。
\
\
开发本程序的主要动机是为了解决本人在 `Linux` 下进行一些复杂操作时难以记忆的问题(例如配置一些复杂的软件如 `GitLab`、`Nextcloud` 等等)。利用 `asciinema` 自动记录所有 `shell` 操作,并将记录文件自动推送到一个远程 `Git` 仓库用于备份。这不仅可以方便地追溯和复现每一步操作,也可以通过 `Git` 仓库轻松保存和分享这些操作记录。
\
\
当然本程序也可以用于其它方面的文件备份,例如用于自动备份文档、配置文件等等。
\
\
这是我个人的使用方法示例:1. 创建 `/root/.cache/asciinema/` 目录作为 `git` 仓库。
2. 配置上一步创建的 `Git` 仓库的推送地址等信息。
3. 安装 `asciinema`,然后配置 `.zshrc`, 以便于在打开 `shell` 时自动开始录制所有 `shell` 上的操作,在这个文件尾部添加以下代码:```bash
ctime=$(date +%Y%m%d_%H%M%S)if [ -z "$recsession" ]; then
export recsession=$$
echo "Current time: $ctime, recsession: $recsession"
/usr/bin/asciinema rec "/root/.cache/asciinema/$ctime-$recsession-ascii.cast"
fi
```修改完成后保存,在这之后在打开 `shell` 时将会自动运行 `asciinema`,并将你在 `shell` 中的所有操作录制并自动保存到 `/root/.cache/asciinema/` 这个 `Git` 仓库目录中。
4. 编译本项目,成功将得到可执行程序 `autogit`,将其复制到 `/usr/local/bin/autogit`,然后创建一个 `systemd` 服务用于自动运行 `autogit`:
```bash
[Unit]
Description=Git watch service
After=network.target[Service]
User=root
ExecStart=/usr/local/bin/autogit --quiet true --check_interval 60 --repository /root/.cache/asciinema
WorkingDirectory=/tmp/
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
RestartSec=10[Install]
WantedBy=multi-user.target
```然后启动这个服务,从这之后,所有在 `shell` 中的操作将被录制。