doc/book/en/admin/additional-tips.rst
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Fri, 02 Apr 2010 09:56:40 +0200
branchstable
changeset 5135 f15286235aef
parent 5002 0ce27e435b3a
child 5400 b7ab099b128a
permissions -rw-r--r--
[doc] enhanced setup section: fix sections'level, more postgres tips, merge environment doc with cwconfig.py module docstring using custom autodocstring directive


.. _Additional Tips:

Additional Tips
---------------

Here are some additional tips as far as administration of a CubicWeb is concerned.

Backup, backup, backup
``````````````````````

It is always a good idea to backup. If your system does not do that, you should
set it up. Note that whenever you do an upgrade, `cubicweb-ctl` offers you to
backup your database.  There are a number of ways for doing backups. Before you
go ahead, make sure the following permissions are correct ::

   # chgrp postgres /var/lib/cubicweb/backup

   # chmod g+ws /var/lib/cubicweb/backup

   # chgrp postgres /etc/cubicweb.d/*<instance>*/sources

   # chmod g+r /etc/cubicweb.d/*<instance>*/sources

**Classic way on PostgreSQL server**

Simply use the pg_dump in a cron installed for `postgres` user on the database server::

    # m h  dom mon dow   command
    0 2 * * * pg_dump -Fc --username=cubicweb --no-owner <instance> > /var/backups/<instance>-$(date '+%Y-%m-%d_%H:%M:%S').dump

**CubicWeb way**

The CubicWeb way is to use the `db-dump` command. For that, you have to put
your passwords in a user-only-readable file at the home directory of root user.
The file is `.pgpass` (`chmod 0600`), in this case for a socket run connection
to PostgreSQL ::

    /var/run/postgresql:5432:<instance>:<database user>:<database password>

The postgres documentation for the `.pgpass` format can be found `here`_

Then add the following command to the crontab of the user (`crontab -e`)::

    # m h  dom mon dow   command
    0 2 * * * cubicweb-ctl db-dump <instance>

**The automated sysadmin way**

You can use a combination `backup-ninja`_ (which has a postgres script in the
example directory), `backuppc`)_ (for versionning).

Please note that in the *CubicWeb way* it adds a second location for your
password which is error-prone.

.. _`here` : http://www.postgresql.org/docs/current/static/libpq-pgpass.html
.. _`backup-ninja` : https://labs.riseup.net/code/projects/show/backupninja/
.. _`backuppc` : http://backuppc.sourceforge.net/