轻松创建已安装包、点文件等的轻量级备份。
shallow-backup的Python项目详细描述
浅层备份
shallow-backup
允许您轻松创建已安装包、应用程序、字体和点文件的轻量级备份,并自动将它们推送到远程Git存储库
目录
- Installation
- Usage
- Git Integration
- What can I back up?
- Backup Customization
- Output Structure
- Inspiration
- Want to contribute?
安装
用^{
} 安装$ pip3 install shallow-backup
$ shallow-backup
从releases选项卡下载
shallow-backup
二进制文件。
使用量
要启动交互式程序,只需运行$ shallow-backup
。
构建shallow-backup
时考虑了脚本命令行参数支持交互程序中支持的每个功能。
Usage: cli.py [OPTIONS] Easily back up installed packages, dotfiles, and more. You can edit which files are backed up in ~/.shallow-backup. Written by Aaron Lichtman (@alichtman). Options: -all Full back up. -configs Back up app config files. -delete_config Delete config file. -destroy_backup Delete backup directory. -dotfiles Back up dotfiles. -fonts Back up installed fonts. --new_path TEXT Input a new back up directory path. -old_path Skip setting new back up directory path prompt. -packages Back up package libraries. -reinstall_configs Reinstall configs. -reinstall_dots Reinstall dotfiles and dotfolders. -reinstall_fonts Reinstall fonts. -reinstall_packages Reinstall packages. -reinstall_all Full reinstallation. --remote TEXT Set remote URL for the git repo. -show Display config file. -v, --version Display version and author info. -h, -help, --help Show this message and exit.
Git集成
一句小心话
此备份工具是git集成的,这意味着您可以轻松地远程(例如在github上)存储备份。点文件和配置文件可能包含敏感信息,如api密钥和ssh密钥,并且您不想公开这些信息。为了确保不会意外上载敏感文件,shallow-backup
如果在目录中找不到文件,则创建一个.gitignore
文件默认排除.ssh/
和.pypirc
。如果要推送到远程专用存储库,或者只在本地备份,则可以安全地删除这些限制。为此,应清除.gitignore
文件而不删除它。
如果选择备份到公共存储库,请查看要备份的每个文件,以确保它是公共的
如果我想为我的dotfiles维护一个单独的repo呢?
shallow-backup
这很简单在进行第一次备份之后,cd
进入dotfiles/
目录并运行$ git init
在您喜欢的版本控制平台上创建一个.gitignore
和一个新的repo此回购协议将独立于基础回购协议(手动)维护。
我能备份什么?
默认情况下,shallow-backup
会备份这些文件
dotfiles
和dotfolders
。.bashrc
.bash_profile
.gitconfig
.pypirc
.shallow-backup
.ssh/
.vim/
.zshrc
应用程序配置文件
- 原子
- vscode
- 升华文本2/3
- terminal.app
已安装的软件包
apm
brew
和cask
cargo
gem
pip
pip3
npm
macports
VSCode
扩展Sublime Text 2/3
包装- 系统应用程序
用户安装
fonts
备份定制
如果要修改备份的文件,则必须编辑~/.shallow-backup
文件。有两种推荐的方法
- 在CLI中选择适当的选项并按照提示进行操作
- 在文本编辑器中打开文件并进行更改
输出结构
backup_dir/
├── configs
│ ├── plist
│ │ └── com.apple.Terminal.plist
│ ├── sublime_2
│ │ └── ...
│ └── sublime_3
│ └── ...
├── dotfiles
│ ├── .bash_profile
│ ├── .bashrc
│ ├── .gitconfig
│ ├── .pypirc
│ ├── ...
│ ├── .shallow-backup
│ ├── .ssh/
│ │ └── known_hosts
│ ├── .vim/
│ └── .zshrc
├── fonts
│ ├── AllerDisplay.ttf
│ ├── Aller_Bd.ttf
│ ├── Aller_BdIt.ttf
│ ├── Aller_It.ttf
│ ├── ...
│ ├── Ubuntu Mono derivative Powerline Bold Italic.ttf
│ ├── Ubuntu Mono derivative Powerline Bold.ttf
│ ├── Ubuntu Mono derivative Powerline Italic.ttf
│ └── Ubuntu Mono derivative Powerline.ttf
└── packages
├── apm_list.txt
├── brew-cask_list.txt
├── brew_list.txt
├── cargo_list.txt
├── gem_list.txt
├── installed_apps_list.txt
├── npm_list.txt
├── macports_list.txt
├── pip_list.txt
└── sublime3_list.txt
灵感
我每周都会多次将MacBookPro的系统图像备份到一个外部固态硬盘上,而且总是需要很长的时间。我想加快速度,所以我看了看实际备份的内容。我看到我的brew
、npm
和pip
库占用的空间比我想象的要多很多。
这完全没有必要。当你备份某个东西时,你这样做的目的是为了在将来某个时候回到那个精确的状态。以后重新创建这些包库所需的最低限度是每个包管理器安装的包的列表。如果有这些列表,恢复系统包安装很容易:$ pip install -r pip_list.txt
,例如。
通过用简单的文本文件替换我的pip
、brew
、brew cask
和npm
库,我几乎减少了10GB
的备份大小。我还大大减少了备份时间,因为被复制的文件更少了。
一旦我构建了这个功能,我想为开发人员经常使用的文件和文件夹提供一个单独的备份实用程序,所以我添加了备份dotfiles
和fonts
的功能(注意:因为只列出已安装的字体列表或存在的子列表是不太有用的,创建所有用户和用户安装字体的拷贝。
想做贡献吗?
查看CONTRIBUTING.md
和docs
目录。