1. 创建同步文件夹在 dropbox 中创建一个文件夹,例如:Terminal,参考 不想被勒索软件毁掉数据,就按照「3-2-1 原则」来备份文件 一文中讲到的原则,,我个人会再使用 Backup and Sync from Google 同步了这个文件夹,这样配置一下之后,我的 macOS 备份文件就会在 dropbox 和 Google Drive 中各存一份了,以防各种万一。



2. 创建备份 Shell 脚本

#!/bin/sh

export Backup=/Users/spark/Dropbox/Apps/Backup

## 将上面的 /Users/spark/Dropbox/Apps/Backup 替换为你自己保存备份文件的路径

brew leaves > $Backup/brew.txt

brew cask list -1 > $Backup/brewcask.txt

pip freeze > $Backup/pip.txt

pip3 freeze > $Backup/pip3.txt

gem list > $Backup/gem.txt


cp ~/.zshrc $Backup/zshrc

cp -R ~/Library/Preferences $Backup/Preferences

将此文件保存为 backup.sh,然后保存在一个一个你满意的地方。我个人是将其保存在 dropbox 上的一个隐藏文件夹中,里面放着我研究需要的所有工具。


3. 给 Shell 脚本添加权限

chmod 777 /path/to/backup.sh


4.  备份

在终端运行命令:/path/to/backup.sh这会停在这里几秒钟,当进程完成时,回到 dropbox 的 Terminal 目录中你就可以看到备份的软件清单。

如果你在执行备份过程中想不输入全路径,直接执行 backup.sh 的话,需要先添加环境变量。此处以 OS X 自带的终端为例,在终端中输入:1export PATH="$HOME/path/to/backup.sh'sfolder:$PATH"

请将上面这条命令的 /path/to/backup.sh’sfolder 字段替换为你保存 backup.sh 的文件夹路径,后面的 :$PATH" 一个字符都不要修改。
例如我是将 backup.sh 保存在 dropbox 的 .bin 目录下那么命令就是:

export PATH=$HOME/Dropbox/Apps/.bin/:$PATH


然后让你的配置生效:

source ~/.bash_profile

这样你就可以不用输入全路径,也可以直接执行 backup.sh 了。

进阶设置如果你想要每次开机时都自动执行备份命令,而不是使用终端来输入命令来执行了话,可以按照如下教程进行配置。在系统偏好设置的用户登录选项中添加 backup.sh 文件

将打开 backup.sh 文件的默认软件更改为你使用的终端,比如说 Terminal 或者 iTerm2。

就这样设置好了,以后每次开机时都会自动更新已安装软件清单到 dropbox 了。

5. 恢复备份 

创建还原备份 Shell 脚本,保存为 restore.sh

#!/bin/sh

cd /Users/spark/Dropbox/Apps/Terminal ## 更改 cd 后面的路径为你自己保存备份文件的路径

pip install `cat pip.txt`

npm install `cat npm.txt`

brew install `cat brew.txt`

pip3 install `cat pip3.txt`

sudo gem install `cat gem.txt`

brew cask install `cat brewcask.txt`

赋予脚本权限并执行

chmod +x restore.sh

/path/to/restore.sh

项目地址:https://github.com/JamesHopbourn/Backup-macOS