<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=C%C3%B2pies_de_seguretat_de_Postgres_I</id>
	<title>Còpies de seguretat de Postgres I - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=C%C3%B2pies_de_seguretat_de_Postgres_I"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=C%C3%B2pies_de_seguretat_de_Postgres_I&amp;action=history"/>
	<updated>2026-08-30T07:18:34Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=C%C3%B2pies_de_seguretat_de_Postgres_I&amp;diff=5282&amp;oldid=prev</id>
		<title>Joan: /* pg_dumpall */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=C%C3%B2pies_de_seguretat_de_Postgres_I&amp;diff=5282&amp;oldid=prev"/>
		<updated>2010-04-19T13:09:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;pg_dumpall&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Fent la còpia de seguretat: pg_dump dbname &amp;gt; outfile=&lt;br /&gt;
&lt;br /&gt;
http://www.postgresql.org/docs/8.3/interactive/backup-dump.html&lt;br /&gt;
&lt;br /&gt;
Amb pg_dump generarem un fitxer de text amb les comandes SQL de manera que, un cop importades altre cop al servidor, recrearà la base de dades i la deixarà en el mateix estat que quan vam fer el dump.&lt;br /&gt;
&lt;br /&gt;
pg_dump és una aplicació client del PostgreSQL, i a efectes pràctics, per no tenir problemes de permisos, millor executar-lo com a superusuari:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pg_dump -h localhost -p 5432 -U postgres abanq &amp;gt; abanq.dmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
o bé, per tal que no ens demani password (que és el que necessito per poder fer còpies de seguretat):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ PGUSER=postgres&lt;br /&gt;
$ PGPASSWORD=postgres&lt;br /&gt;
$ PGHOST=localhost&lt;br /&gt;
$ PGPORT=5432&lt;br /&gt;
$ export PGUSER PGPASSWORD PGHOST PGPORT&lt;br /&gt;
$ pg_dump abanq &amp;gt; abanq.dmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ joe abanq.dmp&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
-- PostgreSQL database dump&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
SET client_encoding = 'UTF8';&lt;br /&gt;
SET standard_conforming_strings = off;&lt;br /&gt;
SET check_function_bodies = false;&lt;br /&gt;
SET client_min_messages = warning;&lt;br /&gt;
SET escape_string_warning = off;&lt;br /&gt;
&lt;br /&gt;
SET search_path = public, pg_catalog;&lt;br /&gt;
&lt;br /&gt;
SET default_tablespace = '';&lt;br /&gt;
&lt;br /&gt;
SET default_with_oids = false;&lt;br /&gt;
  &lt;br /&gt;
--&lt;br /&gt;
-- Name: agentes; Type: TABLE; Schema: public; Owner: postgres; Tablespace:&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE agentes (&lt;br /&gt;
    codpostal character varying(10),&lt;br /&gt;
    codagente character varying(10) NOT NULL,&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
com veiem, aquesta exportació s'ha realitzat en mode text pla, amb totes les comandes SQL visibles i comprensibles.&lt;br /&gt;
&lt;br /&gt;
La Comanda pg_dmp té diferents opcions (''man pg_dmp''), les més destacades són:&lt;br /&gt;
*-a: data only&lt;br /&gt;
*-c: clean, fa un drop dels objectes abans de tornar-los a crear.&lt;br /&gt;
*-C: create, crea la base de dades&lt;br /&gt;
*-d, -D : fa inserts en comptes de COPY, i això fa que la restauració sigui molt més lenta, però és útil per a fer exportacions a altres bases de dades. Amb -D es posen els noms dels camps de forma explícita.&lt;br /&gt;
*-f fitxer. És el fitxer de sortida que contindrà la còpia de seguretat.&lt;br /&gt;
*-F format: és el format de sortida, que pot ser:&lt;br /&gt;
:*p: text pla&lt;br /&gt;
:*c: custom. És el format més flexible, és un format comprimit, i va bé per utilitzar després el ''pg_restore'' en la restauració. &lt;br /&gt;
:*t: tar, comprimit&lt;br /&gt;
*-i: ignorar la versió&lt;br /&gt;
*-O: no owner. No escriu les comandes per fer que els objectes conservin el propietari.&lt;br /&gt;
*-s: schema only. Només exporta la definició dels objectes, no les dades.&lt;br /&gt;
*-t table: s'especifica quines taules vols exportar&lt;br /&gt;
*-v: verbose&lt;br /&gt;
*-x: no-privileges. No s'exporten les comandes GRANT, REVOKE originals&lt;br /&gt;
&lt;br /&gt;
Per exemple, també podem fer:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ PGUSER=postgres&lt;br /&gt;
$ PGPASSWORD=postgres&lt;br /&gt;
$ PGHOST=localhost&lt;br /&gt;
$ PGPORT=5432&lt;br /&gt;
$ export PGUSER PGPASSWORD PGHOST PGPORT&lt;br /&gt;
$ pg_dump abanq -f abanq2.dmp -i -x -O&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Si vull exportar a un fitxer comprimit, i que després pugui importar mitjançant pg_restore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pg_dump abanq -f abanq3.dmp -i -x -O -Fc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Si ara visualitzo el fitxer abanq3.dmp, veuré que hi ha caràcters comprimits, sobretot en la part de les dades.&lt;br /&gt;
&lt;br /&gt;
Si volem comprimir el fitxer de sortida:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pg_dump dbname | gzip &amp;gt; filename.gz (per fer la còpia)&lt;br /&gt;
$ gunzip -c filename.gz | psql dbname (per fer la restauració, veure més avall com utilitzem psql)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==pg_dumpall==&lt;br /&gt;
pg_dump només fa la còpia d'una base de dades, i no copia informació de rols i espais de taula. Per fer una còpia total del clúster de base de dades, s'utilitza pg_dumpall:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pg_dumpall &amp;gt; outfile (còpia)&lt;br /&gt;
$ psql -f infile postgres (restauració)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PGUSER=postgres&lt;br /&gt;
PGPASSWORD=postgres&lt;br /&gt;
PGHOST=localhost&lt;br /&gt;
PGPORT=5432&lt;br /&gt;
export PGUSER PGPASSWORD PGHOST PGPORT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Restaurar la còpia de seguretat=&lt;br /&gt;
Per restaurar hi ha vàries possibilitats: psql, pg_restore (que utilitzarem quan utilitzem el format custom: -Fc) &lt;br /&gt;
&lt;br /&gt;
==Restauració amb psql==&lt;br /&gt;
els fitxers de text creats amb pg_dump es restauren amb psql:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ psql dbname &amp;lt; infile&lt;br /&gt;
$ psql abanq &amp;lt; abanq.dmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Dóna un missatge de què els objectes ja existeixen. Una possibilitat és dir en el pg_dump que es tornin a crear els objectes (-c). En aquest cas no es pot utilitzar -C per tornar a crear la base de dades.&lt;br /&gt;
&lt;br /&gt;
Una seqüència que funciona sense errors i sense missatges d'error és:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pg_dump abanq -f abanq4.dmp  -c&lt;br /&gt;
$ psql abanq &amp;lt; abanq4.dmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Nota''': si fem l'exportació amb l'opció -Fc, hem de restaurar amb ''pg_restore''. &lt;br /&gt;
&lt;br /&gt;
==Restauració amb pg_restore==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ man pg_restore&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
És la restauració que farem quan utilitzem l'opció -Fc (o qualsevol format que no sigui text pla), que és un format que comprimeix. És el format que utiltizaré per a fer les meves còpies de seguretat automàtiques.&lt;br /&gt;
&lt;br /&gt;
pg_restore permet ser selectiu amb allò que es restaura.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pg_dump -Fc dbname &amp;gt; filename&lt;br /&gt;
$ pg_restore -d dbname filename&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per exemple, una seqüència que funciona és:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pg_dump -Fc -f abanq6.dmp abanq&lt;br /&gt;
&lt;br /&gt;
$ # eliminem les dues files de la taula provincias&lt;br /&gt;
$ psql -h localhost -p 5432 -U postgres abanq&lt;br /&gt;
abanq# delete from provincias;&lt;br /&gt;
abanq# \q&lt;br /&gt;
&lt;br /&gt;
$ pg_restore -a -d abanq abanq6.dmp&lt;br /&gt;
&lt;br /&gt;
$ psql -h localhost -p 5432 -U postgres abanq&lt;br /&gt;
abanq# select from provincias; (comprovem que la informació hi és)&lt;br /&gt;
abanq# \q&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Per llistar tot allò que conté un fitxer de restauració:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pg_restore -l -d abanq abanq6.dmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una seqüència que funciona, eliminant la base de dades i tornant-la a crear és:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pg_dump -C -Fc -f abanq8.dmp abanq&lt;br /&gt;
$ dropdb abanq&lt;br /&gt;
http://www.postgresql.org/docs/8.3/interactive/backup-dump.html&lt;br /&gt;
$ createdb -T template0 abanq&lt;br /&gt;
$ pg_restore -d abanq abanq8.dmp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=scripts: automatitzar les còpies de seguretat=&lt;br /&gt;
&lt;br /&gt;
==pg_dmp_automatic.sh==&lt;br /&gt;
Aquest script és una simplificació del script pg_dmp.sh, que utilitza la utilitat pg_dump del postgres per fer còpies de seguretat.&lt;br /&gt;
&lt;br /&gt;
Ús: ./pg_dmp_automatic.sh &amp;lt;base_dades&amp;gt;, on &amp;lt;base_dades&amp;gt; és la base de dades de la que vull fer un backup.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
##############################  #Script by Joan Q, a partir de pg_dmp.sh  ##############################    &lt;br /&gt;
PGUSER=postgres&lt;br /&gt;
PGPASSWORD=postgres&lt;br /&gt;
PGHOST=localhost&lt;br /&gt;
PGPORT=5432&lt;br /&gt;
&lt;br /&gt;
export PGUSER PGPASSWORD PGHOST PGPORT&lt;br /&gt;
&lt;br /&gt;
tdate=`date +%d%m%y`    &lt;br /&gt;
     &lt;br /&gt;
if ! [ -d $HOME/pg_backup_$1 ] &lt;br /&gt;
then&lt;br /&gt;
#if folder pg_backup_'databsename' does not exist in the current users home dierectory then create a new folder&lt;br /&gt;
mkdir $HOME/pg_backup_$1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
pg_dump $1 -f $HOME/pg_backup_$1/$1_$tdate -i -x -Fc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#reset PGUSER and PGPASSWORD  &lt;br /&gt;
PGUSER=&amp;quot;&amp;quot;&lt;br /&gt;
PGPASSWORD=&amp;quot;&amp;quot;&lt;br /&gt;
PGHOST=&amp;quot;&amp;quot;&lt;br /&gt;
PGPORT=&amp;quot;&amp;quot;&lt;br /&gt;
export PGUSER PGPASSWORD PGHOST PGPORT  &lt;br /&gt;
 &lt;br /&gt;
#End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Exporto les variables d'entorn del postgres&lt;br /&gt;
*fico la data en la variable tdate amb el format date111008&lt;br /&gt;
* el primer paràmetre és la base de dades que vull copiar. Comprova si existeix el directori $HOME/pg_backup_$1, (per ex, /home/joan/pg_backup_postgres), i si no existeix el crea&lt;br /&gt;
* pg_dump $1 -f $HOME/pg_backup_$1/$1_$tdate -i -x -Fc &lt;br /&gt;
:fa la còpia de seguretat pròpiament dita.&lt;br /&gt;
:especifico la base de dades que vull copiar, el fitxer que es crearà (-f), que serà del tipus postgres_101108, ignore-version (-i), no-privileges (-x),  format custom (-Fc,  custom: Output a custom archive suitable for input into pg_restore. This is the most flexible format in that it allows reordering of loading data as well as object definitions. This format is also compressed by default.)&lt;br /&gt;
&lt;br /&gt;
==pg_dmp.sh==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
##############################  #Script by Anas V  ##############################    &lt;br /&gt;
#Substitute your postgresql root username in the below given line  &lt;br /&gt;
PGUSER=postgres&lt;br /&gt;
#Substitute your postgresql root password in the below given line  &lt;br /&gt;
PGPASSWORD=postgres&lt;br /&gt;
export PGUSER PGPASSWORD&lt;br /&gt;
&lt;br /&gt;
PGHOST=localhost&lt;br /&gt;
PGPORT=5432&lt;br /&gt;
export PGHOST PGPORT&lt;br /&gt;
&lt;br /&gt;
tdate=`date +%d-%b-%Y`    &lt;br /&gt;
&lt;br /&gt;
if [ $# -lt 1 ]    &lt;br /&gt;
# Check if there is at least one argument [i.e the database whose dump is to be taken]  &lt;br /&gt;
#First argument is mandatory - Databse name  &lt;br /&gt;
#Second argument is optional - Destination path to save dump  &lt;br /&gt;
then            &lt;br /&gt;
	echo &amp;quot;Bad Arguments&amp;quot;          &lt;br /&gt;
	echo &amp;quot;-----------------------------------&amp;quot;          &lt;br /&gt;
	echo &amp;quot;USAGE : pg_dmp.sh &amp;lt;databasename&amp;gt; [outputfile]&amp;quot;          &lt;br /&gt;
	echo &amp;quot;-----------------------------------&amp;quot;          &lt;br /&gt;
	exit 1  &lt;br /&gt;
else    &lt;br /&gt;
&lt;br /&gt;
#if one or more arguments were provided          &lt;br /&gt;
	if [ $# -ge 2 ]          &lt;br /&gt;
	#if arguments provided is greater than or equal to 2          &lt;br /&gt;
	then    &lt;br /&gt;
		#Comment out the below given file exist check and it's associated messages    &lt;br /&gt;
		# if you want to run the pg_dmpsh script to run silently. i.e from a cron or at job    &lt;br /&gt;
		# without any user interaction. Then the output dump file will be rewritten if a file   &lt;br /&gt;
		# already exists.                   &lt;br /&gt;
		if [ -f $2  ]                  &lt;br /&gt;
		# if destination file ie argument 2 is already existing                  &lt;br /&gt;
		then                          &lt;br /&gt;
			#Show confirmation message to confirm whether replace file with new one or exit&lt;br /&gt;
			dialog --title &amp;quot;Confirm File Replace&amp;quot; --backtitle &amp;quot;pg_dmp.sh&amp;quot; --yesno &amp;quot;\nFile already exist, Do you want to replace it with '$2' file&amp;quot; 7 90&lt;br /&gt;
			sel=$?&lt;br /&gt;
			case $sel in&lt;br /&gt;
			#if Yes then take dump and replace the existing file with new dump&lt;br /&gt;
			0)  pg_dump $1 -f $2 -i -x -O -R;;&lt;br /&gt;
			#if No then exit&lt;br /&gt;
			1) exit 1 ;;&lt;br /&gt;
			#if escape then exit&lt;br /&gt;
			255) exit 1;;&lt;br /&gt;
			esac&lt;br /&gt;
		else&lt;br /&gt;
			#if destination file does not exist then create and save the dump in destination path&lt;br /&gt;
			pg_dump $1 -f $2 -i -x -O -R&lt;br /&gt;
		fi&lt;br /&gt;
	else&lt;br /&gt;
		if [ $# -eq 1 ]&lt;br /&gt;
		#if arguments provided is equal to 1&lt;br /&gt;
		then&lt;br /&gt;
			if [ -d $HOME/pg_backup_$1 ]&lt;br /&gt;
			#if folder name pg_backup_'databsename' exist in the current users home directory&lt;br /&gt;
			then&lt;br /&gt;
				if [ -f $HOME/pg_backup_$1/$1_$tdate ]&lt;br /&gt;
				#if destination file name exist in pg_backup_'databasename' folder in current users home dierectory&lt;br /&gt;
				then&lt;br /&gt;
				#Show confirmation message for replacing the file with new dump&lt;br /&gt;
					dialog --title &amp;quot;Confirm File Replace&amp;quot; --backtitle &amp;quot;pg_dump.sh&amp;quot;\&lt;br /&gt;
					--yesno &amp;quot;\nFile already exist, Do you want to replace it with '$HOME/pg_backup_$1/$1_$tdate' file&amp;quot; 7 90&lt;br /&gt;
					sel=$?&lt;br /&gt;
					case $sel in&lt;br /&gt;
					#if Yes then replace the file with new dump file&lt;br /&gt;
					0) pg_dump $1 -f $HOME/pg_backup_$1/$1_$tdate -i -x -O -R;;&lt;br /&gt;
					#if No then exit&lt;br /&gt;
					1) exit 1 ;;&lt;br /&gt;
					#if escape thenexit&lt;br /&gt;
					255) exit 1;;&lt;br /&gt;
					esac&lt;br /&gt;
				else&lt;br /&gt;
					#if destination file does not exist then create and save the dump&lt;br /&gt;
					pg_dump $1 -f $HOME/pg_backup_$1/$1_$tdate -i -x -O -R&lt;br /&gt;
				fi&lt;br /&gt;
			else&lt;br /&gt;
				#if folder pg_backup_'databsename' does not exist in the current users home dierectory then&lt;br /&gt;
				#Create a new folder&lt;br /&gt;
				mkdir $HOME/pg_backup_$1&lt;br /&gt;
				#then create dump and save it&lt;br /&gt;
				pg_dump $1 -f $HOME/pg_backup_$1/$1_$tdate -i -x -O -R&lt;br /&gt;
				#if databse to take does not exist then Delete the folder created&lt;br /&gt;
				if [ $? -ne 0 ]&lt;br /&gt;
				then&lt;br /&gt;
					rmdir $HOME/pg_backup_$1&lt;br /&gt;
				fi&lt;br /&gt;
			fi&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
	if [ $# -gt 2 ]&lt;br /&gt;
	#if arguments passed where greater than 2 then  show message&lt;br /&gt;
	then&lt;br /&gt;
		echo &amp;quot;Extra Arguments ignored&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#reset PGUSER and PGPASSWORD  &lt;br /&gt;
PGUSER=&amp;quot;&amp;quot;&lt;br /&gt;
PGPASSWORD=&amp;quot;&amp;quot;&lt;br /&gt;
export PGUSER PGPASSWORD&lt;br /&gt;
PGHOST=&amp;quot;&amp;quot;&lt;br /&gt;
PGPORT=&amp;quot;&amp;quot;&lt;br /&gt;
export PGHOST PGPORT  &lt;br /&gt;
#End&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En aquest script, més complet, tenim la possibilitat de ficar un segon argument, que és el nom que donarem a la còpia. En el cas de què existeixi la còpia hi ha la possibilitat de reemplaçar-la o conservar-la. Es fa de forma interactiva mitjançant un dialog.&lt;br /&gt;
&lt;br /&gt;
Si no funciona la comanda dialog, s'ha d'instal.lar el paquet:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ sudo apt-get install dialog&lt;br /&gt;
$ man dialog&lt;br /&gt;
$ dialog --msgbox 'hola món!' 0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cron: Còpies periòdiques. Fitxer crontab==&lt;br /&gt;
&lt;br /&gt;
el fitxer crontab queda de la següent manera, on la última línia diu que s'executi cada minut el script pg_dmp_automatic.sh, que fa una còpia de la base de dades &amp;lt;postgres&amp;gt;, valor que passo com a paràmetre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/crontab: system-wide crontab&lt;br /&gt;
# Unlike any other crontab you don't have to run the `crontab'&lt;br /&gt;
# command to install the new version when you edit this file&lt;br /&gt;
# and files in /etc/cron.d. These files also have username fields,&lt;br /&gt;
# that none of the other crontabs do.&lt;br /&gt;
&lt;br /&gt;
SHELL=/bin/sh&lt;br /&gt;
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
&lt;br /&gt;
# m h dom mon dow user	command&lt;br /&gt;
17 *	* * *	root    cd / &amp;amp;&amp;amp; run-parts --report /etc/cron.hourly&lt;br /&gt;
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / &amp;amp;&amp;amp; run-parts --report /etc/cron.daily )&lt;br /&gt;
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / &amp;amp;&amp;amp; run-parts --report /etc/cron.weekly )&lt;br /&gt;
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / &amp;amp;&amp;amp; run-parts --report /etc/cron.monthly )&lt;br /&gt;
*/1 * 	* * *	joan	/home/joan/llegir.sh&lt;br /&gt;
*/1 *	* * *	joan	/home/joan/pg_dmp_automatic.sh postgres&lt;br /&gt;
#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, novembre 2008&lt;br /&gt;
[[Category: Postgres]]&lt;br /&gt;
[[Category: Administració de Sistemes]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>