原文链接:Automatic backup of log files to S3 from EC2 instances

近期我打算启动新的EC2实例来部署服务的新版本,并终止运行着旧版本服务的实例。我认为这种方法可行,因为我想无论如何都会有取代实例的时候。然而,这种方法存在一个弊端,即丢失服务的日志文件(我也许会用于排除故障与分析)。

我决定将这些日志文件备份到S3。然而,我不知道该如何做。因为我正在使用logrotate,来轮转这些文件。问题是,使用默认选项运行时,日志文件名是静态的,但内容会随着每次轮转而改变。开始我考虑dateext指令,以获取当前的日期添加到文件名,但最后我认为向logrotate添加rotate-hook会更容易。

创建logrotate hook非常简单。只需将postrotate/endscript指令添加到想要运行的脚本或命令即可。您还需要添加sharedscripts,以确保脚本每次只执行一次。

我的服务的logrotate文件(/etc/logrotate.d/my_service)如下所示:

/var/log/my_service/*.log {dailymissingokcopytruncaterotate 10compressdelaycompressnotifemptysharedscriptspostrotate/bin/bash /etc/my_service/upload_log_to_s3.sh log.1endscript
}

但是,当前还未轮转到的日志文件该怎么办?如果实例将终止,那么最新的日志文件将不被上传。

解决方法是对系统使用shutdown-hook。在Ubuntu中使用upstart可以很容易地添加shutdown-hook。

upstart配置文件(/etc/init/shutdown-hook.conf)如下所示:

description "run at shutdown"start on starting rc
task
exec /bin/bash /etc/my_service/upload_log_to_s3.sh log

最后我只需脚本来上传日志文件到S3:

#!/bin/bashlog_file_ext=$1gzip -c /var/log/my_service/*.$log_file_ext > /tmp/log.gzaws s3 cp /tmp/log.gz s3://my_service_bucket/logs/`date +%Y-%m-%dT%H:%M:%SZ`.log.gz

上传脚本将gzip日志文件(当使用delaycompress时需要),将日志文件重命名为当前时间戳以及使用aws-cli上传文件。该参数设置日志文件的扩展名,需要既能上传当前的日志(.log)也能上传之前的日志(.log.1)。
这当然不是最好的解决方案,但却容易实现。希望对你有帮助。

将日志文件从EC2实例自动备份到S3相关推荐

  1. 自动备份html文件,windows下定期自动备份本地文件(文件夹)

    虽然网上有一些免费的文件自动备份软件,但是没有自己编写一段批处理来完成备份任务来的放心,而且不用占用系统资源. 就给大家讲一下如何利用批处理完成本地文件或者文件夹的备份. 1.批处理脚本 该方法可把某 ...

  2. 备份网站服务器文件路径,网站数据自动备份方法

    对于辛苦做的网站,如果不去备份,出现网站空间出问题或者网站被恶意攻击,删除网站数据,那就惨了.等于自己的努力都付诸东流了.对于自己做网站时如何去备份呢,一般有二种方法,一种是手动去备份,另一种是自动备 ...

  3. oracle备份的输出日志文件,oracle导出数据,备份及恢复数据,及数据库日志文件的查看...

    以salary为例,在PLSQL Developer中操作 1.导出salary表的数据:将 salary 表的数据以 insert 语句的方式导出 tools-->Export Tables- ...

  4. 如何备份服务器日志到其他服务器_sql2008自动备份到ftp服务器,sql2008自动备份到ftp服务器代码公布...

    FTP是File Transfer Protocol的简称,又被称为文件传输协议,是一种将数据上传和下载到Internet的方式.FTP是一套公认的且简单的协议,是传输单个文件以及多个文件的一个最有效 ...

  5. 安全日志的自动备份方法

    安全日志的自动备份方法 对于启用了安全审核策略的服务器,日常产生的审核日志记录都会写入到安全事件日志中,因此安全日志文件大小上限需要适当调大(因为事件日志使用的是内存缓存空间,因此也不能任意调大,通常 ...

  6. Tomcat logs 目录下各日志文件的含义

    [Tomcat]tomcat logs 目录下各日志文件的含义 tomcat每次启动时,自动在logs目录下生产以下日志文件,按照日期自动备份.可以帮助我们更好的找出错误. 一. 认识各种目录的作用及 ...

  7. 【Tomcat】tomcat logs 目录下各日志文件的含义

    [Tomcat]tomcat logs 目录下各日志文件的含义 一.认识各种目录的作用及记录的信息目录 1.catalina.日期.log 2.commons-daemon.日期.log 3.host ...

  8. RMAN备份概念_关于RMAN控制文件和服务器参数文件的自动备份

    拥有控制文件和服务器参数文件的最近的备份在很多恢复情况中是非常有价值的.为了确保含有这些文件的备份,数据库支持控制文件和服务器参数文件(spfile)自动备份. 自动备份独立发生,与作为BACKUP命 ...

  9. 计算机文件自动备份到移动硬盘,电脑文件定时自动备份到移动硬盘,有什么方法?...

    原标题:电脑文件定时自动备份到移动硬盘,有什么方法? 如果你是一名上班族,那么肯定会有备份重要电脑文件的习惯,因为电脑系统崩溃挥着磁盘硬盘损坏将会导致电脑文件的丢失,文件备份可以帮助我们减少这种风险. ...

最新文章

  1. MIT 的新型开源系统 Taco 将数据分析速度提升 100 倍 !(附论文)
  2. java反射比较两个model6_java反射机制
  3. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1107:校门外的树
  4. 网络爬虫--20.【Scrapy-Redis实战】分布式爬虫获取房天下--代码实现
  5. dos导入mysql数据库表_用DOS命令在Linux下mysql数据库的导入导出操作
  6. Python面向对象基础一
  7. mysql_数据备份和迁移(Windows)
  8. java 串口通信问题_jsp,java串口通信的问题
  9. multipartfile转excel_SpringMVC 上传文件 MultipartFile 转为 File的方法
  10. 如何方便的下载csdn博客正文
  11. JS 时间格式化 时间戳 日期
  12. 【7gyy】教大家设置一个类似手机的锁屏界面
  13. cadence导入dxf文件_PCB原创|cadence allegro导入DXF文件操作步骤
  14. 李岳恒:2020年的经济趋势研判
  15. java前端页面调用webservice_一个简单的Webservice的demo(中)_前端页面调用
  16. Neo4j OGM的配置问题
  17. 乌班图的世界——建立文件夹和空文件
  18. Ubuntu_DNS配置过程记录
  19. 用友:携手华为,共建“鲲鹏”新生态
  20. html转为exe格式文件格式,HTML、PDF文件格式转换工具一览

热门文章

  1. php 支付宝回调验证失败,支付宝回调验证签名失败怎么解决?
  2. 创业报告——在科技园和大学创业基地揭牌仪式上
  3. Ubuntu 下安装deb包命令
  4. JavaScript中弧度和角度的转换
  5. proteus中导入ST7920驱动的LCD12864模型
  6. 创优翼首页HTML,新手与大神就在一念之间,论HTML5的正确使用姿势。创优翼教育...
  7. 电路设计(二)之串联匹配电阻的应用
  8. WDA学习笔记(二)通过页面跳转理解WDA开发流程
  9. left和margin-left的区别
  10. 域环境下通过域策略推送图片(幻灯片)类型的屏保