awk脚本备份drupal

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

根据settings.php 里面的相关设置,去备份mysql.保留14天的。

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
#!/bin/bash
 
awk  '
BEGIN{FS= "[\" \047]+"
     www_prefix= "/mnt/"
     bak_prefix= "/mnt/backup/"
     path[ "test1" ]= "test1/sites/default/files"
     path[ "test2" ]= "test2/sites/default/files"
     bak=0     #备份文件方式 0 rsync 1 tar
     del=14    #删除多少以前的
}
!/^ *\/\ //  && /\/\*/{a=1}
!/^ *\/\ //  && /\*\/ *$/{a=2}
a==2 && /^ *\$databases/{
     b[1]=1
     next
     }
b[1] && a==2 && /^ *[^ #]/ && !/^ *\/\// && /database|username|password|host/{
     b[$2]=$4
     if (length(b)==5){
         site=gensub(www_prefix "([^/]*)/.*" , "\\1" ,1,FILENAME)
         mysql = sprintf( "mysqldump -u\"%s\" -p\"%s\" -h\"%s\" --database %s > %s%s/db/%s.sql" ,b[ "username" ],b[ "password" ],b[ "host" ],b[ "database" ],bak_prefix,site,strftime( "%F" ,systime()))
         system(mysql)
         del_bak_mysql = sprintf( "rm -f %s%s/db/%s.sql" ,bak_prefix,site,strftime( "%F" ,systime()-86400*del))
         system(del_bak_mysql)
         if (bak){
             file_bak = sprintf( "cd %s%s && tar -cf %s%s/file/%s.tar.gz ." ,www_prefix,site,bak_prefix,site,strftime( "%F" ,systime()))
         } else {
             file_bak = sprintf( "rsync -az %s%s/ %s%s/file" ,www_prefix,path[site],bak_prefix,site)
         }
         system(file_bak)
         delete b
     }
}'  /mnt/test1/sites/default/settings .php  /mnt/test2/sites/default/settings .php


下次还有新的drupal直接把settings.php文件添加到后面就和path(网站root路径)就可以了,



本文转自 nonono11 51CTO博客,原文链接:http://blog.51cto.com/abian/1720010,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
20小时前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1048 0
|
9天前
|
人工智能 运维 安全
|
20小时前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
238 0
|
7天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
8天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
701 23