-
Notifications
You must be signed in to change notification settings - Fork 6
/
site-backup.sh.sample
72 lines (55 loc) · 1.36 KB
/
site-backup.sh.sample
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/env bash
#基准目录
base_dir=~
#站点名称
site_name=ctc-docker
#ctc-docker目录
ctc_docker_dir=${base_dir}/${site_name}
#ctc-docker备份文件
ctc_docker_tar=${base_dir}/${site_name}.tar.gz
#普通信息输出
normal_print() {
echo -e "\033[34m \n $1 \n \033[0m"
}
#成功信息输出
success_print() {
echo -e "\033[32m \n $1 \n \033[0m"
}
#失败信息输出
error_print() {
echo -e "\033[31m \n $1 \n \033[0m"
}
#系统判断
os_type() {
os=$(grep "^ID=" /etc/os-release)
if [[ ${os} =~ 'centos' ]]; then
echo 'centos'
elif [[ ${os} =~ 'ubuntu' ]]; then
echo 'ubuntu'
elif [[ ${os} =~ 'debian' ]]; then
echo 'debian'
else
echo 'other'
fi
}
#判断是否root用户
if [[ $EUID -ne 0 ]]; then
error_print "------ error: this script must be run as root ------" 1>&2
exit 1
fi
if [ ! -d ${ctc_docker_dir} ]; then
error_print "------ error: ctc-docker dir not found ------"
exit 1
fi
normal_print "------ stop docker services ------"
#停止容器
cd ${ctc_docker_dir} && docker-compose down
normal_print "------ create ctc-docker.tar.gz ------"
#压缩文件
cd ${base_dir} && tar -czf ${site_name}.tar.gz ${site_name}
normal_print "------ start docker services ------"
#重启容器
cd ${ctc_docker_dir} && docker-compose up -d
if [ -e ${ctc_docker_tar} ]; then
success_print "------ backup completed ------"
fi