技术平台-开发环境-系统维护

abstiger大约 1 分钟

系统维护

主要备份系统中的配置与数据

软件升级

系统备份

0 23 * * * /root/.tools/backup-system-dev.sh > /dev/null

#!/bin/sh

BACKUP_ROOT=/samba/backups
BACKUP_DATE=$(date +%Y%m%d)
BACKUP_LOG=/tmp/${0}.${BACKUP_DATE}.log
BACKUP_PATH=${BACKUP_ROOT}/dev.${BACKUP_DATE}
if [ ! -d ${BACKUP_PATH} ]; then
    mkdir -p ${BACKUP_PATH};
fi

backup_openldap() {
# https://www.openldap.org/doc/admin24/maintenance.html
# https://github.com/alexanderjackson/ldap-backup-and-restore
echo "$(date +%c): backup openldap starting..."|tee -a ${BACKUP_LOG}
BACKUP_PATH_OPENLDAP=${BACKUP_PATH}/openldap/ && mkdir -p ${BACKUP_PATH_OPENLDAP}
/usr/sbin/slapcat -n 0 > ${BACKUP_PATH_OPENLDAP}/config.ldif
/usr/sbin/slapcat -n 1 > ${BACKUP_PATH_OPENLDAP}/domain.ldif
echo "$(date +%c): backup openldap finished!!!"|tee -a ${BACKUP_LOG}
}

backup_openvpn() {
echo "$(date +%c): backup openvpn starting..."|tee -a ${BACKUP_LOG}
BACKUP_PATH_OPENVPN=${BACKUP_PATH}/openvpn/ && mkdir -p ${BACKUP_PATH_OPENVPN}
tar -cvf ${BACKUP_PATH_OPENVPN}/openvpn.tar /etc/openvpn > /dev/null
echo "$(date +%c): backup openvpn finished!!!"|tee -a ${BACKUP_LOG}
}

backup_apache2() {
echo "$(date +%c): backup apache2 starting..."|tee -a ${BACKUP_LOG}
BACKUP_PATH_APACHE2=${BACKUP_PATH}/apache2/ && mkdir -p ${BACKUP_PATH_APACHE2}
tar -cvf ${BACKUP_PATH_APACHE2}/apache2.tar /etc/apache2 > /dev/null
echo "$(date +%c): backup apache2 finished!!!"|tee -a ${BACKUP_LOG}
}

backup_gitlab() {
# https://docs.gitlab.com/omnibus/settings/backups.html
echo "$(date +%c): backup gitlab starting..."|tee -a ${BACKUP_LOG}
BACKUP_PATH_GITLAB=${BACKUP_PATH}/gitlab/ && mkdir -p ${BACKUP_PATH_GITLAB}
gitlab-ctl backup-etc >> ${BACKUP_LOG} 2>&1; 
cp -fr $(ls -dt /etc/gitlab/config_backup/* | head -n 1) ${BACKUP_PATH_GITLAB}
gitlab-backup create  >> ${BACKUP_LOG} 2>&1; 
cp -fr $(ls -dt /var/opt/gitlab/backups/* | head -n 1) ${BACKUP_PATH_GITLAB}
echo "$(date +%c): backup gitlab finished!!!"|tee -a ${BACKUP_LOG}
}

clean_old_backups() {
echo "$(date +%c): clean old backups starting..."|tee -a ${BACKUP_LOG}
find ${BACKUP_ROOT}/dev.* -maxdepth 0 -mtime 3 -type d -print -exec rm -fr {} \;|tee -a ${BACKUP_LOG}
echo "$(date +%c): clean old backups finished!!!"|tee -a ${BACKUP_LOG}
}

# main
echo "$(date +%c) backup ${BACKUP_PATH} starting..."|tee -a ${BACKUP_LOG}
backup_openldap
backup_openvpn
backup_apache2
backup_gitlab
clean_old_backups
echo "$(date +%c) backup ${BACKUP_PATH} finished!!!"|tee -a ${BACKUP_LOG}

exit 0;

系统恢复

TODO

Loading...