`

管理rails日志(logrotate、cron)

阅读更多
学习网址: http://blog.csdn.net/iiisan/archive/2006/09/05/1180419.aspx

管理rails日志需要两个步骤,首先是使用logrotate工具配置被管理的日志的信息,这样做的目的是实行对日志的管理,其次,我们不可能手动执行logrotate工具,我们需要让系统自动执行这个工具,那么我们需要使用cron工具,该工具可以起到定时执行任务的作用。

提示:  手动执行logrotate工具(当我们配置好logrotate时,可以手动执行以下命令来测试配置好的logrotate是否起作用,其中/etc/logrotate.d/rails是配置好的logrotate信息):

sudo /usr/sbin/logrotate /etc/logrotate.d/rails


一:

1:为指定的文件配置转储参数,该文件要符合如下格式,其中第一行的路径是所要管理的日志的绝对路径
   经常需要为指定文件配置参数,一个常见的例子就是每月转储/var/log/wtmp/development.log。为特定文件而使用的参数格式是:

# 注释
/var/log/wtmp/development.log
{
option(s)
}


2   logrotate的具体配置信息(这里的配置信息是指上例的option(s))

daily, weekly, monthly, yearly   日、周、月、年
size  指定大小,默认为byte, k为(kbyte),M为(mbyte)。
rotate  指定备份个数
missingok  没有日志,没关系

nocompress 不需要压缩
compress   压缩为gzip格式
delaycompress   延後压缩直到下一次 rotate,注意compress和delaycompress可以实现延后压缩直到下一次rotate。
nodelaycompress     覆盖delaycompress选项,改为同时压缩

notifempty   如果log文档为空,就不rotate
copytruncate   先複製log檔的內容後,再清空的作法,因為有些程式一定log在本來的檔名,例如rails,保留原来的文档。
nocopytruncate  和copytruncate相比,不保留原来的文档

create   转储日志文件后,创建日志文件
nocreate   转储日志文件后,不创建日志文件

olddir 指定转储后的日志放入的文件夹目录
noolddir 转储后的日志和当前的日志放在同一个目录下

prerotate
   /usr/bin/chattr -a /var/log/messages
endscript   指定转储以前的动作
postrotate
   /usr/bin/kill -HUP syslogd
   /usr/bin/chattr +a /var/log/messages
endscript   指定转储以后的动作

daily                        指定转储周期为每天
weekly                       指定转储周期为每周
monthly                      指定转储周期为每月

include:  从指定的文件夹读取文件的信息,就好像这些信息已经在该文件中一样,例如/etc/logrotate.conf中的include一样,include 指定的文件中的转储参数将覆盖缺省的参数。



二: ubuntu下自动安装了cron,所以我们可以直接打开该工具的配置文件,/etc/crontab,配置信息,具体配置请看以上所提供的网址。其中我在/etc/crontab中直接指定了执行脚本文件(*/1  *    * * *    root    /etc/cron.secondly/logrotate-log,该脚本文件中存放的我需要手动执行的命令/usr/sbin/logrotate /etc/logrotate.d/rails)


三: 其他
关于shell脚本的注意事项

有三点一定要注意:

1.脚本文件的名称不能包含“.”符号。你可以写成“backup-website”,但不要写成“backup-website.sh”。
2.脚本开头必须加上“#!/bin/bash”,否则run-parts调用不成功
3.改变权限为可执行文件


ubuntu下启动,停止与重启cron,均是通过调用/etc/init.d/中的脚本进行。命令如下:

sudo /etc/init.d/cron start
sudo /etc/init.d/cron stop
sudo /etc/init.d/cron restart

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除没个用户的cron服务
crontab -e //编辑某个用户的cron服务


可以通过pgrep cron命令查看cron是否在运行。
分享到:
评论

相关推荐

    Ruby-Rails日志分析器查看您的视图渲染的速度

    本话题主要关注如何使用Ruby编写日志分析器来洞察Rails应用中视图渲染的速度,从而优化整体性能。 首先,日志文件在Ruby on Rails中扮演着至关重要的角色,它们记录了应用程序运行时的详细信息,包括数据库查询、...

    browserlog, 在你的浏览器中,观看 Rails 日志.zip

    browserlog, 在你的浏览器中,观看 Rails 日志 项目状态项目已经被存档,它的开发停止。 我对维护它没有什么兴趣。 欢迎 fork 并享受乐趣: Browserlog Browserlog是 Rails 应用程序的实时网络日志查看器。 特性自动...

    Rails管理框架upmin-admin.zip

    upmin-admin 是一个为 Rails 应用开发的开源管理框架。用来管理 Rails 应用中各种对象(如 Model、View 和 Controller )。 标签:upmin

    计划任务Cron表达式生成

    `whenever`是Rails框架中用于简化Cron表达式创建的gem,它允许开发者用更易读的语法来定义计划任务。例如: ```ruby every 2.days, at: '3:00 am' do runner "MyModel.some_process" end ``` 在这个例子中,`...

    Rails项目源代码

    监控和日志管理也很重要,如使用New Relic、Lograge等工具。 10. **测试**: Rails鼓励TDD(测试驱动开发),包括单元测试、集成测试和功能测试。RSpec、Capybara等库可以帮助编写和运行这些测试,确保代码质量。 ...

    rails 部署 nginx

    可以使用如Logrotate来管理日志文件,Prometheus和Grafana组合进行性能监控,以及使用如New Relic或Sentry来跟踪错误和性能问题。 9. **安全考虑**: 部署时应确保Nginx配置文件的安全性,避免泄露敏感信息,如...

    log_analyzer:Rails日志分析器(查看视图呈现的速度)

    LogAnalyzer 查看Ruby on Rails应用程序中渲染的速度。 基于日志信息。 提供有关渲染频率和渲染速度的图片。样品 您可以看到以下列: 类型-文件类型(部分或视图= P或V) 视图-视图名称计数-渲染数平均-渲染的平均...

    rails-settings, 使用 Ruby on Rails 管理设置.zip

    rails-settings, 使用 Ruby on Rails 管理设置 Rails的设置 ruby gem,通过在单独的数据库表中将它们存储为序列化的哈希来处理。 包含命名空间和默认值。要求ruby 1.9.3或者更高版本Rails 3.1或者更高版本( 包括 ...

    Rails101_by_rails4.0

    而在Rails开发中,合适的编辑器可以提高代码编写和管理的效率,Linux命令行则对于部署和维护开发环境有着重要作用。 为了确保读者能够通过实践加深理解,书中还安排了一系列练习作业,从最基础的“Hello World”...

    rails指南 中文版

    5. **Gemfile与Bundler**:Rails项目通常使用Gemfile来管理依赖库,Bundler工具则用于安装和管理这些依赖,确保在不同环境下项目的运行一致性。 6. **Scaffolding**:Rails提供了快速生成基本CRUD(Create, Read, ...

    关于rails 3.1 cucumber-rails 1.2.0

    Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...

    rails2-sample

    了解如何在真实世界中运行和管理Rails应用,对于确保应用的稳定性和安全性具有重要意义。 综上所述,《Simply Rails2》不仅为初学者提供了全面的Ruby on Rails入门指南,也为进阶开发者提供了深入的技术细节和实践...

    rails-flog:用于参数和SQL的Rails日志格式化程序

    rails-flog提供了在Rails日志文件中格式化参数Hash和SQL的功能。 之前和之后(示例应用程序:Redmine) 之前(默认) # Parameters Processing by IssuesController#create as HTML Parameters: {"utf8"=>"✓", ...

    The Rails 4 Way

    - **Bundler**:Bundler是Rails项目中用来管理依赖库的工具。它确保项目能够一致地运行在不同的环境中,并且可以轻松地添加或移除依赖库。 - **启动和应用设置**:这部分介绍如何配置Rails项目的启动过程以及如何...

    Rails

    标签 "工具" 可能意味着讨论到了与Rails开发相关的工具,如集成开发环境(IDEs)、包管理器(如Bundler)、测试框架(如RSpec和Capybara)、调试工具等,这些工具能提升开发效率和代码质量。 压缩包子文件的文件...

    rails 项目起步示例

    Rails是Ruby语言的一个著名Web开发框架,全称为Ruby on Rails,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率和代码可读性。本示例"rails项目起步示例"是一个购物系统,非常适合初学者入门学习。 ...

    Advanced Rails

    学习如何进行版本控制、配置管理、日志记录和监控。 7. **Rails插件与Gem**:Rails社区提供了丰富的插件和Gem,如Devise用于身份验证,Paperclip或Carrierwave处理文件上传,Resque或Sidekiq实现后台任务队列。掌握...

    Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)

    3. Rails 3.2: Rails 3.2进一步优化了性能,引入了低延迟的LogSubscriber,提升了日志记录的效率。ActiveRecord的查询性能得到提升,例如添加了`pluck`方法,可以直接获取数据库列的值。此外,`rails generate ...

    Rails 101S

    - **前置知识**:在深入学习Rails之前,了解一些必要的预备知识,如Ruby语言基础、数据库管理等。 - **CRUD简介**:解释Create (创建)、Read (读取)、Update (更新) 和Delete (删除) 这四个基本操作,它们是Web应用...

Global site tag (gtag.js) - Google Analytics