技术平台-开发环境-系统维护
大约 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...