我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何在Ubuntu系统中用ramlog将日志文件转存至内存中

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何在Ubuntu系统中用ramlog将日志文件转存至内存中

本篇内容主要讲解“如何在Ubuntu系统中用ramlog将日志文件转存至内存中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在Ubuntu系统中用ramlog将日志文件转存至内存中”吧!

Ramlog 以系统守护进程的形式运行。在系统启动时它创建虚拟磁盘(ramdisk),将 /var/log 下的文件复制到虚拟磁盘中,同时把虚拟磁盘挂载为/var/log。然后所有的日志就会更新到虚拟磁盘上。而当 ramlog 重启或停止时,需要记录到硬盘上的日志就会保留在目录/var/log.hdd中。而关机的时候,(ramdisk上的)日志文件会重新保存到硬盘上,以确保日志一致性。Ramlog 2.x默认使用tmpfs文件系统,同时也可以支持ramfs和内核ramdisk。使用rsync(译注:Linux数据镜像备份工具)这个工具来同步日志。

注意:如果突然断电或者内核崩溃(kernel panic)时,没有保存进硬盘的日志将会丢失。

如果你拥有够多的可用内存,而又想把日志放进虚拟磁盘,就安装ramlog吧。它是笔记本用户、带有UPS的系统或是直接在flash中运行的系统的优良选择,可以节省日志的写入时间。Ramlog的运行机制以及步骤如下:

  •     Ramlog 由第一个守护进程(这取决于你所安装过的其它守护进程)启动。

  •     然后创建目录/var/log.hdd并将其硬链至/var/log。

  •     如果使用的是tmpfs(默认)或者ramfs 文件系统,将其挂载到/var/log上。

  •     而如果使用的是内核ramdisk,ramdisk会在/dev/ram9中创建,并将其挂载至/var/log。默认情况下ramlog会占用所有ramdisk的内存,其大小由内核参数"ramdisk_size"指定。

  •     接着其它的守护进程被启动,并在ramdisk中更新日志。Logrotate(译注:Linux日志轮替工具)和 ramdisk 配合的也很好。

  •     重启(默认一天一次)ramlog时,目录/var/log.hdd将借助rsync与/var/log保持同步。日志自动保存的频率可以通过cron(译注:Linux例行性工作调度)来控制。默认情况下,ramlog 的调度任务放置在目录/etc/cron.daily下。

  •     系统关机时,ramlog在最后一个守护进程关闭之前关闭。

  •     在ramlog关闭期间,/var/log.hdd中的文件将被同步至/var/log,接着/var/log和/var/log.hdd都被卸载,然后删除空目录/var/log.hdd。

在Ubuntu中安装Ramlog

首先需要用以下命令,从这里下载.deb安装包:

    wget http://www.tremende.com/ramlog/download/ramlog_2.0.0_all.deb

下载ramlog_2.0.0_all.deb安装包完毕,使用以下命令进行安装:   

代码如下:

sudo dpkg -i ramlog_2.0.0_all.deb

这一步会完成整个安装,现在你需要运行以下命令:

   

代码如下:

sudo update-rc.d ramlog start 2 2 3 4 5 . stop 99 0 1 6

.

现在,在更新sysklogd的初始化顺序,使之能在ramlog停止运行前正确关闭:   

代码如下:

sudo update-rc.d -f sysklogd remove
   sudo update-rc.d sysklogd start 10 2 3 4 5 . stop 90 0 1 6 .

然后重启系统:   

代码如下:

sudo reboot

系统重启完毕,运行'ramlog getlogsize'来获取你当前的/var/log的空间大小。在此基础之上多分配40%的空间,确保ramdisk有足够的空间(这整个都将作为ramdisk的空间大小)。

编辑引导配置文件,如/etc/grub.conf,、/boot/grub/menu.lst 或/etc/lilo.conf(译注:具体哪个配置文件视不同引导加载程序而定),给你的当前内核的新增选项 'ramdisk_size=xxx' ,其中xxx是ramdisk的空间大小。
配置Ramlog

基于deb的系统中,Ramlog的配置文件位于/etc/default/ramlog,你可以在该配置文件中设置以下变量:   

代码如下:

RAMDISKTYPE=0
   # 取值:
   # 0 -- tmpfs (可被交换到交换分区) -- 默认
   # 1 -- ramfs (旧内核不能设置最大空间大小,
   # 不能被交换到交换分区,和 SELinux 不兼容)
   # 2 -- 老式的内核 ramdisk
   TMPFS_RAMFS_SIZE=
   # 可以用于 tmpfs 或 ramfs 的最大内存大小
   # 这个值可以是百分比或数值(单位是 Mb),例如:
   # TMPFS_RAMFS_SIZE=40%
   # TMPFS_RAMFS_SIZE=100m
   # 该值为空表示 tmpfs/ramfs 的大小是全部内存的 50%
   # 更多选项可以参考 ‘man mount' 中的‘Mount options for tmpfs' 一节
   # (补充,在较新的内核中,ramfs  支持大小限制,
   # 虽然 man 中说没有这个挂载选项)
   # 该选项仅用于 RAMDISKTYPE=0 或 1 时
   KERNEL_RAMDISK_SIZE=MAX
   #以 kb 为单位指定的内核 ramdisk 大小,或者使用 MAX 来使用整个 ramdisk。
   #该选项仅用于 RAMDISKTYPE=2 时
   LOGGING=1
   # 0=关闭, 1=打开 。记录自身的日志到 /var/log/ramdisk
   LOGNAME=ramlog
   # 自身的日志文件名 (用于 LOGGING=1时)
   VERBOSE=1
   # 0=关闭, 1=打开 (设置为 1时,启动或停止失败时会调用 teststartstop 将细节
   # 写到日志中)

在Ubuntu中卸载ramlog

打开终端运行以下命令:

代码如下:

sudo dpkg -P ramlog

注意:如果ramlog卸载之前仍在运行,需要重启系统完成整个卸载工作。

到此,相信大家对“如何在Ubuntu系统中用ramlog将日志文件转存至内存中”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何在Ubuntu系统中用ramlog将日志文件转存至内存中

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何在Ubuntu系统中用ramlog将日志文件转存至内存中

本篇内容主要讲解“如何在Ubuntu系统中用ramlog将日志文件转存至内存中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何在Ubuntu系统中用ramlog将日志文件转存至内存中”吧!Ra
2023-06-13

Linux中如何使用tmpfs内存文件系统

小编给大家分享一下Linux中如何使用tmpfs内存文件系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简介tmpfs是一种虚拟内存文件系统,而不是块设备。是基
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录