|
|
## Cronjobs
|
|
|
Dentro de las tareas de línea de comandos, existen un conjunto de ellas que necesitan ejecutarse frecuentemente a través del uso de [cronjobs](https://en.wikipedia.org/wiki/Cron#Overview). En sistemas basados en Debian, existen [configuraciones de cronjobs a distintos niveles](https://debian-administration.org/article/56/Command_scheduling_with_cron), pero en particular, nuestras configuraciones de cronjobs las tendremos _centralizadas_ en archivos bajo el directorio `/etc/cron.d/`.
|
|
|
|
|
|
### TODO: Cronjob de backups de DSpace
|
|
|
|
|
|
Basados en el archivo de backups de [CICBA](https://github.com/CICBA/DSpace/blob/master/dspace/config/cron.d-backups) y [SeDICI](https://github.com/sedici/DSpace/blob/sedici_master/extra/httpd/cron.d-backups-sedici)
|
|
|
|
|
|
```bash
|
|
|
# /etc/cron.d/backups-rid: crontab fragment for RID Backups
|
|
|
|
|
|
#-----------------
|
|
|
# GLOBAL VARIABLES
|
|
|
#-----------------
|
|
|
# Shell to use
|
|
|
SHELL=/bin/sh
|
|
|
|
|
|
# Add all major 'bin' directories to path
|
|
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
|
|
|
|
|
DSPACE_BACKUP_DIR=/var/dspace/backups
|
|
|
DSPACE_INSTALL_DIR=/var/dspace/install
|
|
|
|
|
|
SOLR_SERVER=127.0.0.1/solr
|
|
|
|
|
|
OFFSITE_NFS_DIR=
|
|
|
|
|
|
DATESTR=date +%Y-%m-%d_%H%M
|
|
|
|
|
|
#-----------------
|
|
|
# SYSTEM
|
|
|
#-----------------
|
|
|
1 12 3,24 * * root tar --directory / -czf $DSPACE_BACKUP_DIR/etc/etc.backup.$($DATESTR).tgz etc/
|
|
|
0 6 * * * root { rsync -avz --exclude install/solr/*/data /var/dspace $OFFSITE_NFS_DIR ; echo "Completa el rsync a las $($DATESTR)" ; } > /var/log/rsync-a-jursoc.log
|
|
|
|
|
|
#-----------------
|
|
|
# DSPACE
|
|
|
#-----------------
|
|
|
#backups de la base de datos postgres de CIC-DIGITAL dspace_cic@data-pg.sedici.unlp.edu.ar (todos los días de la semana a las 20:00hs y todos los primero de mes)
|
|
|
0 20 1 * 1,2,3,4,5 dspace sh $DSPACE_BACKUP_DIR/do_pgdump.sh -q
|
|
|
|
|
|
#rotación de backups de postgres (todos los dias a las 05:00hs). Se eliminan aquellos mas antiguos a 30 dias de creación pero se conservan los de primero de cada mes
|
|
|
0 5 * * 1,2,3,4,5 dspace find $DSPACE_BACKUP_DIR/postgres -maxdepth 1 -name "dspace_cic-20??-??-??*.gz" -mtime +30 -not -name "dspace_cic-20??-??-01*.gz" -exec rm {} \; > /dev/null
|
|
|
|
|
|
#backup de la base de datos mysql local con las autoridades de CIC-DIGITAL (de lunes a viernes a las 1230)
|
|
|
30 12 * * 1,2,3,4,5 root mysqldump --add-drop-table --routines --events --add-drop-table --all-databases --force | gzip -c > $DSPACE_BACKUP_DIR/mysql/all-databases.sql.gz
|
|
|
|
|
|
#Backup en AIP una vez por semana
|
|
|
5 23 * * sun dspace date && $DSPACE_INSTALL_DIR/bin/dspace packager -d -a -t AIP -e alira@sedici.unlp.edu.ar -u -i 11746/0 $DSPACE_BACKUP_DIR/aip/aip-site.zip && date
|
|
|
|
|
|
#-----------------
|
|
|
# CONFIG
|
|
|
#-----------------
|
|
|
#backups de configuraciones (todos los 1ro de mes a las 4:38hs)
|
|
|
38 4 2 * * root tar --directory $DSPACE_INSTALL_DIR -czf $DSPACE_BACKUP_DIR/config/config.backup.$($DATESTR).tgz config/
|
|
|
|
|
|
#-----------------
|
|
|
# SOLR
|
|
|
#-----------------
|
|
|
#backups de cores de solr. Todos los días a las 5AM.
|
|
|
0 5 * * * root { echo "Realizo backup del core statistics a las $($DATESTR)"; wget -q -O - "http://$SOLR_SERVER/statistics/replication?command=backup&location=$DSPACE_BACKUP_DIR/solr/statistics/&numberToKeep=3"; }>> $DSPACE_INSTALL_DIR/log/solr-backups.log
|
|
|
5 5 * * * root { echo "Realizo backup del core oai a las $($DATESTR)"; wget -q -O - "http://$SOLR_SERVER/oai/replication?command=backup&location=$DSPACE_BACKUP_DIR/solr/oai/&numberToKeep=3"; }>> $DSPACE_INSTALL_DIR/log/solr-backups.log
|
|
|
10 5 * * * root { echo "Realizo backup del core search a las $($DATESTR)"; wget -q -O - "http://$SOLR_SERVER/search/replication?command=backup&location=$DSPACE_BACKUP_DIR/solr/search/&numberToKeep=3"; }>> $DSPACE_INSTALL_DIR/log/solr-backups.log
|
|
|
```
|
|
|
|
|
|
### Cronjob de tareas programadas de DSpace `dspace-config`
|
|
|
|
|
|
Basados en los archivos de cronjobs de [Scheduled Tasks via Cron](https://wiki.lyrasis.org/display/DSDOC6x/Scheduled+Tasks+via+Cron) y del [archivo del repositorio CICBA](https://github.com/CICBA/DSpace/blob/master/dspace/config/cron.d-dspace)
|
... | ... | |