首页 文章 精选 留言 我的

精选列表

搜索[人设自定义],共10000篇文章
优秀的个人博客,低调大师

Python自定义阿里云RDS备份策略

一、背景 由于越来越多的客户对应数据安全的重视,目前阿里云RDS提供了备份策略,但是备份策略周期为每天的某一个时间,在日常云运维工作中,有客户提出需要每天在不同的时间节点多备份几次,此时web界面就不能满足此类在一天内多次备份的需求,但是想到了在阿里云web控制台通过手动点击创建备份,是可以在点击后触发创建备份的任务,想到可以利用api来实现,同时提交工单咨询了下,果然此类需求是需要api来做,故写了个调用python实例配合linux系统的crond服务来完成。 二、代码 github地址 #!/bin/env python # -*- coding:utf-8 -*- # _author:kaliarch from aliyunsdkcore import client from aliyunsdkrds.request.v20140815 import CreateBackupRequest import time import os import logging class rdsOper(): def __init__(self,logger): self.clentoper = client.AcsClient('LTAIhfXlcjyln****','Gwf****4K2ELmt76184o****gRfAso','cn-shanghai') self.logger = logger self.logger.info("------------------------start exec rds backup API log-------------") def backup_instance(self): # 设置参数 request = CreateBackupRequest.CreateBackupRequest() request.set_accept_format('json') request.add_query_param('DBInstanceId', 'rm-uf6xv3**1x842y61y') #如果为单库备份,可以添加DBName # request.add_query_param('DBName', 'mydb') #BackupMethod为备份方式:Logical:逻辑备份,Physical:物理备份 request.add_query_param('BackupMethod', 'Physical') #BackupType为备份类型: Auto:自动计算是全量备份还是增量备份;FullBackup:全量备份。默认值为Auto。 request.add_query_param('BackupType', 'Auto') response = self.clentoper.do_action_with_exception(request) self.logger.info("rdsbackup mission submission successful!") self.logger.info(response) print(response) class Rds_Log: def __init__(self,filename): self.filename = filename def createDir(self): _LOGDIR = os.path.join(os.path.dirname(__file__), 'rdsbackuplog') print(_LOGDIR) _TIME = time.strftime('%Y-%m-%d', time.gmtime()) + '-' _LOGNAME = _TIME + self.filename print(_LOGNAME) LOGFILENAME = os.path.join(_LOGDIR, _LOGNAME) print(LOGFILENAME) if not os.path.exists(_LOGDIR): os.mkdir(_LOGDIR) return LOGFILENAME def createlogger(self,logfilename): logger= logging.getLogger() logger.setLevel(logging.INFO) handler = logging.FileHandler(logfilename) handler.setLevel(logging.INFO) formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formater) logger.addHandler(handler) return logger if __name__ == "__main__": glploger = Rds_Log('rdsbackup.log') logfilename = glploger.createDir() logger = glploger.createlogger(logfilename) app = rdsOper(logger) app.backup_instance() 三、配合定时任务 在随便服务器上传代码安装好相关python的sdk后制作定时任务查看日志查看后天有备份任务已经提交完成举一反三,类似的可以参考阿里云rds的API完成其他需求,如何客户对应rds的备份频率很高的话,可以开通灾备实例,来完成异地的实时备份,如果横向扩展读写操作,可以开通多个只读实例来分摊数据库压力。https://help.aliyun.com/document_detail/26272.html?spm=5176.doc26228.6.821.Ux0gk1 目前对应数据库的备份,阿里云新上线了DBS参考链接 支持ECS自建数据库的异地备份 支持RDS数据库的异地备份 支持本地IDC自建数据库的异地备份 支持公网数据库的异地备份(还包含部署在AWS、Azure、腾讯云等其他云计算厂商的数据库) 此产品不仅支持众多场景的数据库备份,将其存储在阿里云的OSS,并且可以设置加密存储,上保障了备份数据的安全和可靠性,同时可以设置备份对象精细到表级别并且支持增量备份,同时可以配置备份的生命周期,可随时利用备份数据简单几部就可以进行数据恢复,测试了下,发现很好用,但是目前查看官网没有对应API,对于每天需要超过两次以上的备份发现只能创建多个备份任务。

优秀的个人博客,低调大师

centos7自定义系统服务启动

Centos 系统服务脚本目录: /usr/lib/systemd/ 有系统(system)和用户(user)之分, 如需要开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即: lib/systemd/system/ 反之,用户登录后才能运行的程序,存在用户(user)里 服务以.service结尾。 这边以nginx开机运行为例IT 1.建立服务文件 vim/lib/systemd/system/nginx.service [Unit] Description=nginx After=network.target [Service] Type=forking ExecStart=/www/lanmps/init.d/nginxstart ExecReload=/www/lanmps/init.d/nginxrestart ExecStop=/www/lanmps/init.d/nginxstop PrivateTmp=true [Install] WantedBy=multi-user.target [Unit]:服务的说明 Description:描述服务 After:描述服务类别 [Service]服务运行参数的设置 Type=forking是后台运行的形式 ExecStart为服务的具体运行命令 ExecReload为重启命令 ExecStop为停止命令 PrivateTmp=True表示给服务分配独立的临时空间 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径 [Install]服务安装的相关设置,可设置为多用户Linux学习,http:// linux.it.net.cn 2.保存目录 以754的权限保存在目录: /lib/systemd/system 3.设置开机自启动 systemctlenablenginx.service 4.其他命令 任务 旧指令 新指令 使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service 使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service 检查服务状态 service httpd status systemctl statushttpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active) 显示所有已启动的服务 chkconfig --list systemctl list-units --type=service 启动某服务 service httpd start systemctl start httpd.service 停止某服务 service httpd stop systemctl stop httpd.service 重启某服务 service httpd restart systemctl restart httpd.service 启动nginx服务I systemctlstartnginx.service 设置开机自启动 systemctlenablenginx.service 停止开机自启动 systemctldisablenginx.service 查看服务当前状态 systemctlstatusnginx.service 重新启动服务 systemctlrestartnginx.service 查看所有已启动的服务 systemctllist-units--type=service /root/testaddserver /lib/systemd/system/testaddserver.service(7版本系统服务启动文件所在目录) /etc/init .d/ (6版本系统服务启动文件所在目录)

优秀的个人博客,低调大师

docker学习笔记(三)——创建自定义镜像

首先拉取一个镜像,在这里以NGINX为例 1 2 3 4 [root@DockServeropt] #dockerpullnginx [root@DockServeropt] #dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE nginxlatestb8efb18f159b3weeksago107MB 启动NGINX镜像,映射出端口 1 2 3 4 5 [root@DockServeropt] #dockerrun--namewebserver-d-p80:80nginx 8f62585b370ca34eb8c438adbab0f972e1990cee25000a742c6a2d8e7ee7ba38 [root@DockServeropt] #dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 8f62585b370cnginx "nginx-g'daemon..." 6secondsagoUp6seconds0.0.0.0:80->80 /tcp webserver 访问端口,直接用命令行访问, 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 [root@DockServeropt] #curlhttp://127.0.0.1 <!DOCTYPEhtml> <html> < head > <title>Welcometonginx!< /title > <style> body{ width:35em; margin:0auto; font-family:Tahoma,Verdana,Arial,sans-serif; } < /style > < /head > <body> <h1>Welcometonginx!< /h1 > <p>Ifyouseethispage,thenginxwebserverissuccessfullyinstalledand working.Furtherconfigurationisrequired.< /p > <p>Foronlinedocumentationandsupportpleasereferto <ahref= "http://nginx.org/" >nginx.org< /a >.<br/> Commercialsupportisavailableat <ahref= "http://nginx.com/" >nginx.com< /a >.< /p > <p><em>Thankyou for usingnginx.< /em >< /p > < /body > < /html > 可以看到能够访问在nginx docker里的东东了,下面我们修改下首页内容 进入nginx docker 里面进行修改 1 2 3 4 5 进入docker [root@DockServeropt] #dockerexec-itwebserverbash root@8f62585b370c:/ #echo'<h1>Hello,Docker!</h1>'>/usr/share/nginx/html/index.html root@8f62585b370c:/ #exit exit 再次访问看看 1 2 [root@DockServeropt] #curlhttp://127.0.0.1 <h1>Hello,Docker!< /h1 > 可以看出,已经修改成功,我们保存成镜像 1 2 3 4 5 6 7 8 9 10 11 12 [root@DockServeropt] #dockercommit--author"DingJin<dingjin@gmail.com>"--message"修改nginx默认网页"webserverwebserver:v2 sha256:ca35d11b57bac6e3e4ebab15aaff528c8530f7f5e59e00f58fa61e86edf1aa91 [root@DockServeropt] #dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE webserverv2ca35d11b57ba6secondsago107MB nginxlatestb8efb18f159b3weeksago107MB 已经可以看到webserver:v2镜像了,运行下 [root@DockServeropt] #dockerrun--nameweb2-d-p81:80webserver:v2 1647edeba49aa664c0ccf642248f6b30b36c6b08990ede580a5803f1a59ae545 [root@DockServeropt] #curlhttp://127.0.0.1:81 <h1>Hello,Docker!< /h1 > 可以了解以下命令, 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 查看webserver做了哪些更改,即和源镜像对比不同 [root@DockServeropt] #dockerdiffwebserver C /root A /root/ .bash_history C /run A /run/nginx .pid C /var C /var/cache C /var/cache/nginx A /var/cache/nginx/uwsgi_temp A /var/cache/nginx/client_temp A /var/cache/nginx/fastcgi_temp A /var/cache/nginx/proxy_temp A /var/cache/nginx/scgi_temp C /usr C /usr/share C /usr/share/nginx C /usr/share/nginx/html 查看webserver:v2历史文件变动记录 [root@DockServeropt] #dockerhistorywebserver:v2 IMAGECREATEDCREATEDBYSIZECOMMENT ca35d11b57ba4minutesagonginx-gdaemonoff;98B修改nginx默认网页 b8efb18f159b3weeksago /bin/sh -c #(nop)CMD["nginx""-g""daem...0B <missing>3weeksago /bin/sh -c #(nop)STOPSIGNAL[SIGTERM]0B <missing>3weeksago /bin/sh -c #(nop)EXPOSE80/tcp0B <missing>3weeksago /bin/sh -c ln -sf /dev/stdout /var/log/ngi ...0B <missing>3weeksago /bin/sh -capt-getupdate&&apt-getinst...52.2MB <missing>3weeksago /bin/sh -c #(nop)ENVNJS_VERSION=1.13.3....0B <missing>3weeksago /bin/sh -c #(nop)ENVNGINX_VERSION=1.13....0B <missing>3weeksago /bin/sh -c #(nop)MAINTAINERNGINXDocker...0B <missing>3weeksago /bin/sh -c #(nop)CMD["bash"]0B <missing>3weeksago /bin/sh -c #(nop)ADDfile:fa8dd9a679f473a...55.2MB 结合上篇,我们上传到本地私有仓库,然后就直接可以在本地调用了~~ 本文转自 jackjiaxiong 51CTO博客,原文链接:http://blog.51cto.com/xiangcun168/1957431

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册