精华内容
下载资源
问答
  • linux滚动查看文件

    千次阅读 2019-05-31 09:53:09
    tail -50f nohup.out
    tail -50f nohup.out
    
    展开全文
  • 在很多实际项目中,应用程序会持续写日志,如果程序代码中没有调用支持自动切分(如按filesize或date切割)的日志库,则日志文件会很快增长到G级别。单机操作大文件对后续跟进日志来说非常不方便。 本文介绍如何...

    在很多实际项目中,应用程序会持续写日志,如果程序代码中没有调用支持自动切分(如按filesize或date切割)的日志库,则日志文件会很快增长到G级别。单机操作大文件对后续跟进日志来说非常不方便。

    本文介绍如何利用logrotate这个工具来在应用程序外部切分日志。

    1. logrotate是什么
    logrotate是大多数linux系统自带的日志切割工具,在shell终端输入"man logrotate"可查看其简介(部分摘出如下):
    logrotate is designed to ease administration of systems that generate large numbers of log files. It allows automatic rotation, compression, removal, and mailing of log files. Each log file may be handled daily, weekly, monthly, or when it grows too large.
    更完整的简介可以在shell终端查看其man文档,这里不赘述。
    总之,我们知道它可以用来切割仍在滚动的日志文件即可,这里的“仍在滚动”是指当前日志文件仍在被应用程序持续进行追加写操作。

    2. logrotate的适用场景
    如果文件是静态的(即当前没有应用程序对齐进行写操作),则split是更常用的静态文件切割工具,其用法简介见这里,此处略过。
    logrotate常用来切割仍在被写的“动态”文件,它支持按时间间隔或文件大小来触发文件的自动切分(automatic rotation)。具体用法下面说明。

    3. 如何使用logrotate
    根据man logrotate的说明,logrotate用法很简单:
    logrotate [-dv] [-f|--force] [-s|--state file] config_file+
    其中[]中出现的option(s)均是可选项,我们只需提供一份配置文件即可,下面用示例对配置文件格式做说明。
    # sample logrotate configuration file
    compress # 全局配置项,对切分后的文件做gzip压缩
          
    # 一个配置文件中可以包含多个相互独立的sections
    # 其中,待切分文件路径 + { xxx }构成了一个独立的section,每个section可以配置针对该类文件的切分行为
    # 注意:全局配置项会作用于每个section,除非在该section配置中覆盖了全局配置项的行为 
     
    # 下面section的配置表明按时间间隔(weekly)触发日志的自动切分,历史数据只保存最近的5份
    # 切分完成后,通过发送-HUP信号来重启syslogd这个daemon进程。
    /var/log/messages {  
        rotate 5  
        weekly
        postrotate
            /sbin/killall -HUP syslogd
        endscript
    }
           
    # 下面的示例section表明按文件大小触发日志自动切分,大小单位除了上面所示的k外,还可以是M或G
    # 待切分文件路径可以有多个,多个路径用空格隔开
    "/var/log/httpd/access.log" /var/log/httpd/error.log {
        rotate 5
        mail www@my.org
        size=100k
        sharedscripts # 表明HUP信号只需在所有文件均切分完成后发送一次,若无该配置,则每完成一个文件的切分就会执行一次postrotate/endscript之间配置的命令
        postrotate
            /sbin/killall -HUP httpd
        endscript
    }
           
    # 下面的示例section表明按时间(monthly)触发切分
    # 切分后的历史文件会被保存到olddir指定的目录下(该目录需要事先mkdir出来,否则会报错)
    /var/log/news/news.crit {
        monthly
        rotate 2
        olddir /var/log/news/old
        missingok # 若section起始处指定的待切分文件不存在,也不会报错(默认会报错)
        postrotate
            kill -HUP 'cat /var/run/inn.pid'
        endscript
        nocompress # 切分时不做压缩,这里改写了配置文件第1行的全局配置
    }
    上述配置文件中,"#"表示后面是注释,它可以独占一行,也可以与配置项在同一行。
    配置项"rotate 5"表明切分后的历史文件最多保存最近的5份,若触发本次切分时已有5份历史文件(默认为messages.1/messages.2/messages.3/messages.4/messages.5),则文件messages.5会被物理删除,剩余文件后缀序号依次加1。
    切分的具体执行过程可以参考《鸟哥的Linux私房菜》在 这里的说明。
    上面的示例配置文件只是展示了logrotate配置文件的基本格式,该工具还支持其它众多配置项,具体可以参考man logrotate的说明。
    下面的配置文件说明了在实际项目中如何按文件大小对不允许restart的应用程序进行日志自动切分。
     # filename: logrotate.conf
     /home/work/running.log {
        copytruncate # 先copy running.log内容至历史文件,然后清空running.log的内容
        rotate 30    # 保存30份历史日志 
        size=1G      # 若日志文件达到1G,则触发切分
        olddir /home/work/history # 指定历史日志存放目录
        notifempty   # 若/home/work/running.log是空文件,则不做切分
        missingok    # 若/home/work/running.log不存在,不报错
    }
    特别注意 copytruncate这个配置项,根据其文档说明(见下面的摘录), 它可能会导致部分数据丢失,在不允许日志数据丢失的应用场景下,不应该使用该配置(若日志不允许丢失,则最好在应用程序代码中支持HUP信号来实现优雅重启,这样就可以避免使用copytruncate;当然,也可以用logrotate支持的create配置来达到目的)。
    copytruncate
        Truncate  the  original  log file in place after creating a copy, instead of moving the old log file and optionally creating a new one, It can be used when some program can not be told to close its logfile and thus might continue writing (appending) to the previous log file forever.   Note that there is a very small time slice between copying the file and truncating it, so some logging data might be lost.  When this option is used, the create option will have no effect, as the old log file stays in place.

    【参考资料】
    1. man logrotate
    2. 鳥哥的Linux私房菜 - 登錄檔的輪替(logrotate) 

    ====================== EOF ===================


    展开全文
  • 截至到redis-5.0版本,redis仍然不会自动滚动日志文件,如果不处理则日志文件日积月累越来越大,最终将导致磁盘满告警: # ls -lh total 12G -rw-r--r-- 1 redis redis 8.5G Feb 18 10:26 ...

    截至到redis-5.0版本,redis仍然不会自动滚动日志文件,如果不处理则日志文件日积月累越来越大,最终将导致磁盘满告警:

    # ls -lh

    total 12G

    -rw-r--r-- 1 redis redis 8.5G Feb 18 10:26 redis-6379.log

    -rw-r--r-- 1 redis redis 1.5G Feb 18 10:26 redis-6380.log

    -rw-r--r-- 1 redis redis 2.0G Feb 18 10:26 redis-6381.log

     

    查看redis的源代码,可发现每次写日志均是先fopen再fprintf,实现十分简单,毫无日志滚动逻辑:

    // server.c

    void serverLogRaw(int level, const char *msg)

    {

        FILE *fp;

        。。。。。。

        fp = log_to_stdout? stdout: fopen(server.logfile,"a");

        if (!fp) return;

        。。。。。。

        fflush(fp);

        if (!log_to_stdout) fclose(fp);

        if (server.syslog_enabled)

            syslog(syslogLevelMap[level], "%s", msg);

    }

     

    显然,这是redis运维需要解决的。最易想到的是自己写脚本滚动日志,比如直接利用日志滚动脚本工具log_rotater.sh。不过这里更推荐Linux系统自带的日志滚动工具logrotate:

    # which logrotate

    /usr/sbin/logrotate

    # which rsyslogd

    /usr/sbin/rsyslogd

     

    Linux系统自带的日志滚动工具logrotate由两部分组成:一是命令行工具logrotate,二是后台服务rsyslogd。

    使用rsyslogd,只需简单的配置即可实现日志滚动。rsyslogd的配置文件为/etc/logrotate.conf,但一般不建议直接修改logrotate.conf,而是在目录/etc/logrotate.d下新增文件的方式。logrotate.conf会include所有logrotate.d目录下的文件,语法是一致的,区别是logrotate.conf定义了默认的配置,而logrotate.d目录下为专有配置。

     

    下列为redis的配置示例:

    # cat /etc/logrotate.d/redis

    /usr/local/redis/log/redis-6379.log

    /usr/local/redis/log/redis-6380.log

    /usr/local/redis/log/redis-6381.log

    {

        rotate 2

        minsize 100M

        nocompress

        missingok

        create 0664 redis redis

        notifempty

    }

     

    配置项说明:

    1) rotate指定日志文件备份数,如果值为0表示不备份

    2) minsize表示日志文件达到多大才滚动

    3) nocompress表示是否压缩备份的日志文件

    4) missingok如果日志丢失,不报错继续滚动下一个日志

    5) notifempty日志文件为空时,不进行轮转,默认值为ifempty

    6) create指定创建新日志文件的属性,logrotate是以root运行的,如果目标日志文件非root运行,则这个一定要指定好。

     

    有关logrotate的详细使用,请参考logrotate资料,本文不过多描述。

     

    注意,修改后需要重启下rsyslogd。如果是CentOS可使用下列任意一种方式重启(实际上systemctl新方式,而service实际也是使用systemctl):

    # service rsyslog restart 

    systemctl restart  rsyslog.service

    展开全文
  • linux log rotation日志滚动详解

    千次阅读 2020-03-27 01:02:12
    Linux 系统会每隔一天(或间隔更长的时间)或根据日志文件的大小自动进行一次日志滚动。如果你需要滚动日志以释放存储空间,又或者将某一部分日志从当前的活动中分割出来,这很容易做到,具体要取决于文件滚动规则 ...


    1. 为什么需要滚动日志

    一般情况下,无需手动旋转日志文件。Linux 系统会每隔一天(或间隔更长的时间)或根据日志文件的大小自动进行一次日志滚动。如果你需要滚动日志以释放存储空间,又或者将某一部分日志从当前的活动中分割出来,这很容易做到,具体要取决于文件滚动规则

    2. 日志滚动过程

    日志滚动的过程是这样的:在一组日志文件之中,编号最大的(最旧的)一个日志文件会被删除,其余的日志文件编号则依次增大并取代较旧的日志文件,而较新的文件则取代它作为当前的日志文件。这一个过程很容易就可以实现自动化,在细节上还能按需作出微调。

    3. 日志滚动背景介绍

    在 Linux 系统安装完成后就已经有很多日志文件被纳入到日志滚动的范围内了。另外,一些应用程序在安装时也会为自己产生的日志文件设置滚动规则。一般来说,日志滚动的配置文件会放置在 /etc/logrotate.d

    在日志滚动的过程中,活动日志会以一个新名称命名,例如 log.1,之前被命名为 log.1 的文件则会被重命名为 log.2,依此类推。在这一组文件中,最旧的日志文件(假如名为 log.7)会从系统中删除。**日志滚动时文件的命名方式、保留日志文件的数量等参数是由 /etc/logrotate.d 目录中的配置文件决定的,**因此你可能会看到有些日志文件只保留少数几次滚动,而有些日志文件的滚动次数会到 7 次或更多。

    例如 syslog 在经过日志滚动之后可能会如下所示(注意,行尾的注释部分只是说明滚动过程是如何对文件名产生影响的):

    $ ls -l /var/log/syslog*
    -rw-r----- 1 syslog adm  128674 Mar 10 08:00 /var/log/syslog      <== 新文件
    -rw-r----- 1 syslog adm 2405968 Mar  9 16:09 /var/log/syslog.1    <== 之前的 syslog
    -rw-r----- 1 syslog adm  206451 Mar  9 00:00 /var/log/syslog.2.gz <== 之前的 syslog.1
    -rw-r----- 1 syslog adm  216852 Mar  8 00:00 /var/log/syslog.3.gz <== 之前的 syslog.2.gz
    -rw-r----- 1 syslog adm  212889 Mar  7 00:00 /var/log/syslog.4.gz <== 之前的 syslog.3.gz
    -rw-r----- 1 syslog adm  219106 Mar  6 00:00 /var/log/syslog.5.gz <== 之前的 syslog.4.gz
    -rw-r----- 1 syslog adm  218596 Mar  5 00:00 /var/log/syslog.6.gz <== 之前的 syslog.5.gz
    -rw-r----- 1 syslog adm  211074 Mar  4 00:00 /var/log/syslog.7.gz <== 之前的 syslog.6.gz
    

    你可能会发现,除了当前活动的日志和最新一次滚动的日志文件之外,其余的文件都已经被压缩以节省存储空间。这样设计的原因是大部分系统管理员都只需要查阅最新的日志文件,其余的日志文件压缩起来,需要的时候可以解压查阅,这是一个很好的折中方案。

    4. 日志滚动工具logrotate

    logrotate命令用于对系统日志进行轮转、压缩和删除,也可以将日志发送到指定邮箱。使用logrotate指令,可让你轻松管理系统所产生的记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc/logrotate.conf文件中。

    logrotate(选项)(参数)
    选项

    -?或--help:在线帮助;
    -d或--debug:详细显示指令执行过程,便于排错或了解程序执行的情况;
    -f或--force :强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然;
    -s<状态文件>或--state=<状态文件>:使用指定的状态文件;
    -v或--version:显示指令执行过程;
    -usage:显示指令基本用法。
    

    logrotate参数

    compress	通过gzip 压缩转储以后的日志
    nocompress	不需要压缩时,用这个参数
    copytruncate	用于还在打开中的日志文件,把当前日志备份并截断
    nocopytruncate	备份日志文件但是不截断
    create mode owner group	转储文件,使用指定的文件模式创建新的日志文件
    nocreate	不建立新的日志文件
    delaycompress	一起使用时,转储的日志文件到下一次转储时才压缩
    nodelaycompress	覆盖 delaycompress 选项,转储同时压缩。
    errors address	专储时的错误信息发送到指定的Email 地址
    ifempty	即使是空文件也转储,这个是 logrotate 的缺省选项。
    notifempty	如果是空文件的话,不转储
    mail address	把转储的日志文件发送到指定的E-mail 地址
    nomail	转储时不发送日志文件
    olddir directory	转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
    noolddir	转储后的日志文件和当前日志文件放在同一个目录下
    prerotate/endscript	在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
    postrotate/endscript	在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
    daily	指定转储周期为每天
    weekly	指定转储周期为每周
    monthly	指定转储周期为每月
    rotate count	指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
    tabootext [+] list	让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
    size size	当日志文件到达指定的大小时才转储,后缀MB.
    

    4.1 logrotate配置文件位置

    Linux系统默认安装logrotate工具,它默认的配置文件在:

    /etc/logrotate.conf
    /etc/logrotate.d/
    

    logrotate.conf 才主要的配置文件,logrotate.d 是一个目录,该目录里的所有文件都会被主动的读入/etc/logrotate.conf中执行。
    另外,如果 /etc/logrotate.d/ 里面的文件中没有设定一些细节,则会以/etc/logrotate.conf这个文件的设定来作为默认值。
    实际运行时,Logrotate会调用配置文件/etc/logrotate.conf。
    可以在/etc/logrotate.d目录里放置自定义好的配置文件,用来覆盖Logrotate的缺省值。

    4.2 定时轮循机制

    Logrotate是基于CRON来运行的,其脚本是/etc/cron.daily/logrotate,日志轮转是系统自动完成的。
    logrotate这个任务默认放在cron的每日定时任务cron.daily下面 /etc/cron.daily/logrotate
    /etc/目录下面还有cron.weekly/, cron.hourly/, cron.monthly/ 的目录都是可以放定时任务的

    $ cat /etc/cron.daily/logrotate 
    #!/bin/sh
    
    /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
    EXITVALUE=$?
    if [ $EXITVALUE != 0 ]; then
        /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
    fi
    exit 0
    

    实际运行时,Logrotate会调用配置文件/etc/logrotate.conf

    $ cat /etc/logrotate.conf
    # see "man logrotate" for details
    # rotate log files weekly
    weekly
    
    # keep 4 weeks worth of backlogs
    rotate 4
    
    # create new (empty) log files after rotating old ones
    create
    
    # use date as a suffix of the rotated file
    dateext
    
    # uncomment this if you want your log files compressed
    #compress
    
    # RPM packages drop log rotation information into this directory
    include /etc/logrotate.d
    
    # no packages own wtmp and btmp -- we'll rotate them here
    /var/log/wtmp {
        monthly
        create 0664 root utmp
    	minsize 1M
        rotate 1
    }
    
    /var/log/btmp {
        missingok
        monthly
        create 0600 root utmp
        rotate 1
    }
    
    # system-specific logs may be also be configured here.
    

    这里的设置可以理解为Logrotate的缺省值,当然了,可以我们在/etc/logrotate.d目录里放置自己的配置文件,用来覆盖Logrotate的缺省值
    nginx 常用日志切割配置

    $ cat /etc/logrotate.d/nginx
    /data/log/nginx/*.log /data/log/nginx/*/*.log { # 对匹配上的日志文件进行切割
    
        weekly # 每周切割
    
        missingok     # 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
    
        rotate 6      # 保留 6 个备份
    
        compress     # 压缩
    
        delaycompress    # delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
    
        notifempty     # 如果是空文件的话,不转储
    
        create 0644 www-data ymserver     # mode owner group 转储文件,使用指定的文件模式创建新的日志文件
    
        sharedscripts # 下面详细说
    
        prerotate # 在logrotate转储之前需要执行的指令,例如修改文件的属性等动作;必须独立成行
    
            if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
    
                run-parts /etc/logrotate.d/httpd-prerotate; \
    
            fi \
    
        endscript
    
        postrotate  # 在logrotate转储之后需要执行的指令,例如重新启动 (kill -HUP) 某个服务!必须独立成行
    
            [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
    
        endscript
    
        su root ymserver # 轮训日志时切换设置的用户/用户组来执行(默认是root),如果设置的user/group 没有权限去让文件容用 create 选项指定的拥有者 ,会触发错误。
    
    }
    

    如果要配置一个每日0点执行切割任务,怎么做到?我们的logrotate默认每天执行时间已经写到了/etc/cron.daily/目录下面,而这个目录下面的任务执行时间上面也说了,在/etc/crontab里面定义了时6:25。我之前就有个这样的需求,看看下面的配置

    /data/log/owan_web/chn_download_stat/chn_app_rec.log {
    
        copytruncate
    
        # weekly 注释了 但是会继承/etc/logrorate.conf的全局变量,也是weekly
    
        missingok
    
        rotate 10
    
        compress
    
        delaycompress
    
        size=1000M # 大小到达size开始转存
    
        notifempty
    
        create 664 www-data ymserver
    
        su root
    
        dateext       //这个参数很重要!就是切割后的日志文件以当前日期为格式结尾,如xxx.log-20131216这样,如果注释掉,切割出来是按数字递增,即前面说的 xxx.log-1这种格式
    
        compress      //是否通过gzip压缩转储以后的日志文件,如xxx.log-20131216.gz ;如果不需要压缩,注释掉就行
    
    }
    

    然后去root的crontab配置一个0点执行的任务

    $ cat /etc/crontab
    wwwadm@host:/etc/logrotate.d$ sudo crontab -l -u root
    
    0 0 * * * /usr/sbin/logrotate /etc/logrotate.d/web_roteate -fv  >/tmp/logro.log 2>&1
    

    因为logrotate的切割周期是weekly,每次切割都是根据上一个切割的时间来进行,如果距离上一次有一周时间,就会切割,但是我们设置了crontab的每天切割,既不会进入/etc/cron.daily/的每日切割,也不会每周切割。这样就能完美定制自己想要的切割日志时间

    4.3 值得注意的一个配置是:copytruncate

    copytruncate 如果没有这个选项的话,操作方式:是将原log日志文件,移动成类似log.1的旧文件, 然后创建一个新的文件。 如果设置了,操作方式:拷贝原日志文件,并且将其变成大小为0的文件。

    区别是如果进程,比如nginx 使用了一个文件写日志,没有copytruncate的话,切割日志时, 把旧日志log->log.1 ,然后创建新日志log。这时候nginx 打开的文件描述符依然时log.1,由没有信号通知nginx 要换日志描述符,所以它会继续向log.1写日志,这样就不符合我们的要求了。 因为我们想切割日志后,nginx 自动会向新的log 文件写日志,而不是旧的log.1文件

    解决方法有两个:

    1.向上面的nginx 切割日志配置,在postrotate里面写个脚本

    postrotate # 在logrotate转储之后需要执行的指令,例如重新启动 (kill -HUP) 某个服务!必须独立成行

    [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
    
    endscript
    

    这样就是发信号给nginx ,让nginx 关闭旧日志文件描述符,重新打开新的日志文件描述,并写入日志

    2.使用copytruncate参数,向上面说的,配置了它以后,操作方式是把log 复制一份 成为log.1,然后清空log的内容,使大小为0,那此时log依然时原来的旧log,对进程(nginx)来说,依然打开的是原来的文件描述符,可以继续往里面写日志,而不用发送信号给nginx

    copytruncate这种方式操作的时候, 拷贝和清空之间有一个时间差,可能会丢失部分日志数据。

    nocopytruncate 备份日志文件不过不截断。

    5. 手动日志滚动

    $ sudo logrotate -f /etc/logrotate.d/rsyslog
    

    值得一提的是,logrotate 命令使用 /etc/logrotate.d/rsyslog 这个配置文件,并通过了 -f 参数实行“强制滚动”。因此,整个过程将会是:

    ◈ 删除 syslog.7.gz,
    ◈ 将原来的 syslog.6.gz 命名为 syslog.7.gz,
    ◈ 将原来的 syslog.5.gz 命名为 syslog.6.gz,
    ◈ 将原来的 syslog.4.gz 命名为 syslog.5.gz,
    ◈ 将原来的 syslog.3.gz 命名为 syslog.4.gz,
    ◈ 将原来的 syslog.2.gz 命名为 syslog.3.gz,
    ◈ 将原来的 syslog.1.gz 命名为 syslog.2.gz,
    ◈ 但新的 syslog 文件不一定必须创建。
    你可以按照下面的几条命令执行操作,以确保文件的属主和权限正确:

    $ sudo touch /var/log/syslog
    $ sudo chown syslog:adm /var/log/syslog
    $ sudo chmod 640 /var/log/syslog
    

    你也可以把以下这一行内容添加到 /etc/logrotate.d/rsyslog 当中,由 logrotate 来帮你完成上面三条命令的操作:create 0640 syslog adm

    
    /var/log/syslog
    {
    rotate 7
    daily
    missingok
    notifempty
    create 0640 syslog adm           <==
    delaycompress
    compress
    postrotate
    /usr/lib/rsyslog/rsyslog-rotate
    endscript
    }
    

    下面是手动滚动记录用户登录信息的 wtmp 日志的示例。由于 /etc/logrotate.d/wtmp 中有 rotate 2 的配置,因此系统中只保留了两份 wtmp 日志文件。

    滚动前:

    $ ls -l wtmp*
    -rw-r----- 1 root utmp  1152 Mar 12 11:49 wtmp
    -rw-r----- 1 root utmp   768 Mar 11 17:04 wtmp.1
    

    执行滚动命令:

    $ sudo logrotate -f /etc/logrotate.d/wtmp
    

    滚动后:

    $ ls -l /var/log/wtmp*
    -rw-r----- 1 root utmp     0 Mar 12 11:52 /var/log/wtmp
    -rw-r----- 1 root utmp  1152 Mar 12 11:49 /var/log/wtmp.1
    -rw-r----- 1 root adm  99726 Feb 21 07:46 /var/log/wtmp.report
    

    需要知道的是,无论发生的日志滚动是自动滚动还是手动滚动,最近一次的滚动时间都会记录在 logrorate 的状态文件中。

    $ grep wtmp /var/lib/logrotate/status
    "/var/log/wtmp" 2020-3-12-11:52:57
    

    参考链接:
    https://www.cnblogs.com/276815076/p/7053640.html
    https://www.networkworld.com/article/3531969/manually-rotating-log-files-on-linux.html

    展开全文
  • Linux文件和目录操作

    千次阅读 2019-10-09 09:56:36
    Linux文件和目录操作一、基本shell操作1.1 常用Linux快捷键1.2 提示和命令补齐1.3 常用Linux命令二、文件和目录操作相关命令2.1 文件和目录操作2.1.1 文件或目录查看2.1.2 目录跳转2.1.3 文件或目录创建2.1.4 文件或...
  • 随时业务增长,Tomcat下catalina.out日志文件会变得越来越大,导致排查日志或者进行日志备份相当困难。 为了解决这一问题,可以将catalina.out文件按天进行归档
  • 日志滚动log rotation在 Linux 系统上是再常见不过的一个功能了,它为系统监控和故障排查保留必要的日志内容,同时又防止过多的日志造成单个日志文件太大。 日志滚动的过程是这样的:在一组日志文件之中,编号最大的...
  • Linux文件系统及常用命令

    千次阅读 2016-03-08 22:00:00
    Linux文件系统介绍: 一 、Linux文件结构  文件结构是文件存放在磁盘等存贮设备上的组织方法。主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。  Linux使用树状目录结构,在安装...
  • 日志滚动Linux 系统上是再常见不过的一个功能了,它为系统监控和故障排查保留必要的日志内容,同时又防止过多的日志造成单个日志文件太大。-- San...
  • Linux文件管理命令大全

    千次阅读 2018-07-06 15:56:20
    1.cat命令cat 命令用于连接文件并打印到标准输出设备上。 使用权限所有使用者语法格式cat [-AbeEnstTuv] [--help] [--version] fileName参数说明:-n 或 --number:由 1 开始对所有输出的行数编号。-b 或 --number-...
  • Linux文件与目录管理总结

    千次阅读 2016-06-25 21:05:14
    Linux文件与目录管理包括:在不同的目录间切换、创建与删除目录、创建与删除文件,还有查找文件、查看文件内容等。 相对路径与绝对路径 绝对路径:路径的写法一定由根目录/写起,如/usr/share/doc这个目录 相对...
  • Linux查看文件内容与处理文件

    千次阅读 2018-12-31 18:03:40
    一、查看文件内容 1、查看文件类型 file命令: 能够探测文件的内部,并决定文件是什么类型的。 用法:file [path]my_file my_file如果是目录,file命令会显示 "my_file : directory"。如果是文本文件,...
  • linux滚动查看实时日志

    千次阅读 2018-11-09 16:27:08
    首先连接linux服务器: 如果是mac,则直接打开一个终端,使用命令(如果是windows,则需要下载xshell 6工具) ssh username@10.2.xxx.xxx 然后输入密码连接成功; 使用以下命令,可以查看实时日志 tail -f ...
  • Linux触摸板自然滚动

    千次阅读 2014-01-15 16:30:07
    原文发布在github.io博客 转载写明出处:...触摸板的自然滚动最早是乔帮主发明的。...所谓自然滚动是指触摸板双指滚动的功能,当用两个手指向上滑动触摸板时,屏幕向上滚动,当双指向下化时,屏幕向下滚动
  • 一:. df -h 查看硬盘剩余空间 size 是 硬盘的总容量,used 已用硬盘容量,avial 硬盘剩余容量,mounted on 硬盘...tmpfs 是临时文件存放地方,开机重启会自动清除 二:tail -f 滚动查看日志 退出ctrl+c ...
  • Linux里面的文件目录类指令

    万次阅读 2019-01-14 23:11:55
    Linux里面的文件目录类指令
  • Linux 文件同步工具——rsync

    千次阅读 2014-06-16 14:58:56
     rsync的主要有以下三个配置文件rsyncd.conf(主配置文件)、rsyncd.secrets(密码文件)、rsyncd.motd(rysnc服务器信息)  服务器配置文件(/etc/rsyncd.conf),该文件默认不存在,请创建它。 具体步骤如下 用root用户...
  • Linux文件与目录管理的常用命令

    千次阅读 2017-08-18 02:30:02
    但对于系统管理员来说,用Linux shell写脚本取得一系列文件的目录就可以大大提高管理员的工作效率。 basename:取得文件名 与dirname相对,basename命令是去掉一个文件路径的目录部分,只输出文件名。用法...
  • Linux环境安装Python 自动化测试的相关问题 记录selenium+webdriver+chromedriver Linux部署的相关问题【DevToolsActivePort文件不存在的报错,版本】
  • linux下查看文件内容的命令

    万次阅读 多人点赞 2019-01-30 11:14:02
    众所周知Linux中命令cat、more、less均可用来查看文件内容,主要区别有: cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况; more和less一般用于...
  • Linux 文件管理 : less 命令详解

    千次阅读 2018-06-29 18:11:59
    less工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less的用法比起more更加的有弹性。 在more的时候,我们并没有办法向前面翻,只能往后面看,但若使用了less时...
  • linux command 文件和目录常用命令

    千次阅读 2018-09-10 19:31:37
    文件和目录常用命令 目标 查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 ... 自动补全 在敲出 文件/目录/命令 的前几个...
  • Linux命令大全----常用文件操作命令

    万次阅读 多人点赞 2015-10-19 08:43:25
    本文主要讲了Linux命令大全----常用文件操作命令,并附有实例
  • Linux 文件管理 : more 命令详解

    千次阅读 2018-06-29 17:58:57
    more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己...
  • 初学者必会的Linux命令 - 文件查看篇

    千次阅读 多人点赞 2019-11-29 23:05:01
    本文关键字:Linux、常用命令、文件查看。
  • 最近服务器出了点小问题,日志文件不断地成倍地增大,但是貌似对系统运行没什么影响,只是这个日志文件不停地增大会导致系统空间爆炸,所以我这里用logrotate功能将日志文件转存并且在日志文件滚动写入将转存的旧...
  • Linux more命令:逐页显示长文本文件 Linux中,配置文件和日志文件通常都采用文本格式,这些文件通常都有很长的内容,不能在一屏内全部显示。因而我们需要做分页处理,本文中分享了用more命令处理长文本文件的方法...
  • Linux下几种文件传输命令

    万次阅读 2018-11-07 15:16:02
    Linux下几种文件传输命令 sz rz sftp scp    最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具。由于它是基于SSH的,会在传输过程...
  • web自动化之js滚动

    千次阅读 2019-06-01 15:16:29
    前言:我们为什么要操作滚动条?,因为大部分系统在元素操作是,如果元素不在可见区域。随着操作会自动到可见区域 比如我们搜索谷歌。在这页面的元素都是可见的(图1)。但是下面的谷歌_百度百科(图2)我们得下滑到...
  • Linux目录结构及文件基本操作Ⅰ Linux目录与Windows目录の差异Ⅱ Linux目录——FHS标准Ⅲ 目录路径A. 切换路径 Ⅰ Linux目录与Windows目录の差异 一种不同是体现在目录与存储介质(磁盘,内存,DVD 等)的关系上,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,509
精华内容 12,203
关键字:

linux文件自动滚动

linux 订阅