How to back up and restore Gmail account on Linux

Google Gmail is the most widely used web-based email service as of today. As a Gmail user, you may want to maintain a separate backup of all email messages in your Gmail account for personal archiving purpose. Email back up is also useful in case you want to change your Gmail address to a different one, or switch to a completely different email provider.

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, the latest 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 apt-get install python-dev python-pip gcc
$ 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 yum install python-devel python-pip gcc
$ 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.

$ cd gmvault-1.8-beta/bin
$ ./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.

$ ./gmvault sync -t quick your_login@gmail.com

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.

$ ./gmvault restore your_login@gmail.com

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.

$ ./gmvault restore your_new_login@gmail.com

Subscribe to Xmodulo

Do you want to receive Linux FAQs, detailed tutorials and tips published at Xmodulo? Enter your email address below, and we will deliver our Linux posts straight to your email box, for free. Delivery powered by Google Feedburner.

The following two tabs change content below.
Dan Nanni is the founder and also a regular contributor of Xmodulo.com. He is a Linux/FOSS enthusiast who loves to get his hands dirty with his Linux box. He likes to procrastinate when he is supposed to be busy and productive. When he is otherwise free, he likes to watch movies and shop for the coolest gadgets.

7 thoughts on “How to back up and restore Gmail account on Linux

Leave a comment

Your email address will not be published. Required fields are marked *

Current ye@r *