To handle this kind of Gmail backup and restoration, you can use Gmvault, which is an open-source Gmail backup software written in Python.
In this tutorial, I will describe how to back up and restore a Gmail account on Linux with Gmvault.
Install Gmvault on Linux
To install Gmvault on Linux, you can use the standard Python package installation method with Pypi. As of this writing, thelatest version of Gmvault is 1.8, which I will install in the following.
First download the latest Gmvault source distribution on Pypi. It will be saved as gmvault-1.8-beta.tar.gz
To install Gmvault on Debian, Ubuntu or Linux Mint:
$ sudo pip install virtualenv
$ tar xvfvz gmvault-1.8-beta.tar.gz
$ virtualenv --no-site-packages gmvault-1.8-beta
$ cd gmvault-1.8-beta/bin
$./pip install --pre gmvault
To install Gmvault on Fedora, CentOS or RHEL:
$ sudo pip install virtualenv
$ tar xvfvz gmvault-1.8-beta.tar.gz
$ virtualenv --no-site-packages gmvault-1.8-beta
$ cd gmvault-1.8-beta/bin
$./pip install --pre gmvault
After installation, an executable named gmvault should be created in gmvault-1.8-beta/bin directory.
Back up a Gmail Account with Gmvault
Before backing up your Gmail account, you need to change the settings of the account. For that, go to the Gmail settings:
Under "Forwarding and POP/IMAP" tab, enable IMAP, and disable folder size limits (i.e., number of emails per folders).
Under "Labels" tab, make "All Mail" and "Chats" folders available in Gmail IMAP. Save the changes in the settings.
Now create a local back up of your Gmail account by running the following command.
$ ./gmvault sync your_login@gmail.com
The above command will prompt you to press ENTER as shown below.
Once you press ENTER, it will pop up a web browser window, asking you to log in to your Gmail account (if you are not logged in), and authorize Gmvault to access your Google account.
Once you have successfully granted Gmvault access to your Google account, press ENTER in the terminal to proceed. After that, Gmvault will start downloading all your email messages.
By default, Gmvault will archive your Gmail messages as gzip-compressed plain texts in ~/gmvault-db.
If you want to back up you email box on a daily basis, you can run the
following command instead. This command will update an existing Gmail backup with only the last 7 days of emails, so it is much faster than full backup.
There are other options used to customize Gmail back up process.
gmvault sync [-d DB_DIR] [--resume] [--emails-only] [--chats-only] [-e] [-m] [--no-compression] gmail_address
- -d DB_DIR : Gmail database root directory. (default: $HOME/gmvault-db)
- --resume, --restart : Resume the sync action from the last saved gmail id
- --emails-only : Only sync email messages.
- --chats-only : Only sync chat messages.
- -e : encrypt email messages stored in the database
- -m : back up multiple Gmail accounts in one database.
- --no-compression : disable email storage compression (gzip).
If you choose to encrypt your emails in the database (with "-e" option), Blowfish encryption is used to encrypt downloaded email messages, and an encryption key is automatically generated and stored in ~/gmvault-db/.info/.storage_key.sec.
Restore a Gmail Account with Gmvault
If you want to restore a Gmail backup into your existing Gmail account (to restore any accidentally deleted email messages), run the following command.
You can also restore an existing Gmail backup to a different Gmail account (to change your Gmail address). Just specify your new Gmail account in the command. In this case, you will need to log into the new Gmail account, and grant access.