我有一个脚本,每30分钟运行一次cronjob,并使用一些表的mysqldump。 转储文件存储在/ var / log / as中 /var/log/mysqldump/dbname/tablename/2014-06-15-18-30-dbname-tablename.sql /var/log/mysqldump/dbname2/tablename2/2014-06-15-19-00-dbname2-tablename2.sql 我使用logrotate进行文件旋转,configuration文件具有以下结构: /var/log/mysqldump/dbname/tablename/*.sql { daily rotate 30 compress nocreate } 现在我的问题是,尽pipelogrotate工作正常,但它的gzip文件的末尾附加“1”或“2”,例如这是我有 /var/log/mysqldump/dbname2/tablename2/2014-06-15-19-30-dbname2-tablename2.sql.1.gz /var/log/mysqldump/dbname1/tablename1/2014-06-15-19-00-dbname1-tablename1.sql.2.gz 我从脚本内执行logrotate logrotate -f /path/to/mysqldump-logrotate.conf 我在这里做错了什么?
如何将旋转的日志连接在一起以生成原始文件? huali-access.log huali-access.log.15 huali-access.log.21 huali-access.log.28 huali-access.log.34 huali-access.log.40 huali-access.log.47 huali-access.log.6 huali-access.log.1 huali-access.log.16 huali-access.log.22 huali-access.log.29 huali-access.log.35 huali-access.log.41 huali-access.log.48 huali-access.log.7 huali-access.log.10 huali-access.log.17 huali-access.log.23 huali-access.log.3 huali-access.log.36 huali-access.log.42 huali-access.log.49 huali-access.log.8 huali-access.log.11 huali-access.log.18 huali-access.log.24 huali-access.log.30 huali-access.log.37 huali-access.log.43 huali-access.log.5 huali-access.log.9 huali-access.log.12 huali-access.log.19 huali-access.log.25 huali-access.log.31 huali-access.log.38 huali-access.log.44 huali-access.log.50 huali-access.log.13 huali-access.log.2 huali-access.log.26 huali-access.log.32 huali-access.log.39 huali-access.log.45 huali-access.log.51 huali-access.log.14 huali-access.log.20 huali-access.log.27 huali-access.log.33 huali-access.log.4 huali-access.log.46 huali-access.log.52
我从我的logrotating脚本中删除了delaycompress函数。 再次运行logrotate之前,我应该自己压缩最后一个日志吗? 这是实际情况: -rw-r—– 1 root adm 4,7M 5 mag 18:38 access.log -rw-r—– 1 root adm 5,2M 29 apr 05:44 access.log.1 -rw-r—– 1 root adm 473K 22 apr 05:45 access.log.2.gz -rw-r—– 1 root adm 605K 15 apr 05:44 access.log.3.gz -rw-r—– 1 root adm 588K 8 apr 05:44 access.log.4.gz 问题是:我应该压缩“access.log.1”,然后启动logrotate? 或者logrotate会理解我删除了“delaycompress”选项并自己修复这些东西?
我被这个难住了 任何帮助深表感谢…! 将/ var / log / HOSTS / cacheflow_access_log /中的日志configuration为归档到/ var / log / HOSTS / archived / cacheflow_access_log /并进行压缩。 这些都是非常大的文件,所以只能保留1天,以便Splunk或Sawmill可以总结他们的内容。 日志旋转和压缩没有问题,但旧的压缩日志不会被删除。 logrotate的详细输出表明这是glob的问题。 它是在实时目录而不是在存档目录中查看? 如果是这样,我该如何解决这个问题? 如果没有,跆拳道是怎么回事?! Logrotate conf: # logrotate configuration for syslog files # global options rotate 1 missingok daily compress ifempty dateformat -%Y%m%d dateext —SNIP— /var/log/HOSTS/cacheflow_access_log/* { daily # only keep 1 […]
我想创造两个东西的新标准: 我的应用程序生成的日志将会生成多长时间并被轮转? 作为备份服务器如何将日志传输到Amazon S3? 我在使用logrotate,以这种方式旋转和压缩我的日常文件: {filename}-{year}-{month}-{day}-{r-months}.gz r-monthsvariables意味着remain-months ,文件应保留在S3中多less个月,应该删除比这个更早的文件。 我的一位朋友提出,我应该compress the logs daily (采用上面提出的新格式),然后将这些文件发送到Amazon S3中的存储桶中。 然后, files older than 7 days should be removed by logrotate (因为它们已经在S3中)。 现在,我们的应用程序使用log4j和其他来生成日志。 1)我们是否应该禁用版本日志,由我们的应用程序生成,只处理logrotate? 2)在你看来,你认为这可能会导致一些应用程序崩溃? 3)这种新的日志格式是好的吗? 4)以及如何发送文件到S3? 现在,我正在使用s3cmd ,你推荐我另一个工具吗?
如何推动日志文件的旋转…. other_vhosts_access.log现在是1.6 GB ….奇怪的是,文件上的date是今天,最后一个旋转的文件是从12-12(一个星期前),是816 MB …
我在CentOS 6上configuration了lograotate。当我手动运行它时,它工作正常,但是使用CRON它不起作用。 克朗在其日志中说:“一切都好,我运行你的命令”,但没有任何反应。 细节: cat /etc/logrotate.d/myproject /var/opt/myproject/log/error.log { size=200M rotate 25 missingok notifempty copytruncate nocreate nocompress nodateext } 猫/etc/cron.d/1everymin SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ * * * * * root /etc/cron.min/logrotate cat /etc/cron.min/logrotate #!/bin/sh #/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1 /usr/sbin/logrotate -v /etc/logrotate.conf > /logrotate.log EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited […]
我对logrotation的观察是,按照以下顺序来旋转任何日志文件,即logrotate进程 使用新名称(将时间戳或数字添加到现有名称以使其成为file1.log-20140513)将有问题的日志文件(让我们称之为file1.log)复制, 删除现有文件(file1.log)并用原始名称(file1.log)创build一个新的空白日志文件, 压缩旋转文件(file1.log-20140513),该文件将创build一个新的压缩文件(file1.log-20140513.gz),如果设置了压缩选项, 删除轮转的文件(file1.log-20140513),最后, 移动到下一个文件上面执行相同的4个步骤。 我在这个过程中遇到以下问题: 我的日志文件是巨大的(每个超过10 GB),我有大约42个这样的日志文件。 写入这些文件的进程同步工作, 服务器上的DiskIO是好的,但是复制需要时间,压缩也需要时间,压缩也会消耗CPU。 我希望所有新创build的日志文件都具有从同一时间开始的日志。 要做到这一点,我想logrotate移动,mv命令所做的一些事情,它重命名文件,而不是复制它们。 至于压缩,我可以禁用,并通过不同的脚本通过计划通过cron触发它。 但我想logrotate移动文件,而不是复制它们。 现在,确定这是logrotate的作者也会考虑的一些事情,因为它明显地节省了磁盘IO和完成整个logrotate操作的时间,所以我想要为什么文件被复制而不是被移动或重命名,以及如何我是否通过logrotate来实现这一点? 注:我试图手动执行它,也就是移动正在运行的进程正在写入的文件,并创build一个具有相同名称和相同权限的新空白文件(即root,这也是进程的权限运行),但移动并创build一个新的文件后,我看到该进程没有写任何东西,所以不得不重新启动进程,使其写入该文件。 任何人也可以解释这种行为,为什么logrotatepipe理,使进程写入相同的文件,但我不能使用简单的步骤。
我的Google-Fu让我如此接近,但还不够完美,我想我在Linux中太绿了,把它们放在一起。 我有一个非常大的> 200GB的日志文件,仍然被写入。 Logrotate在磁盘空间可能成为问题之前不会及时得到它。 另外,我不想logrotate另一轮logrotate ,因为我不希望它在其configuration中影响所有其他目标。 我已经在我的logrotate.conf文件中添加了新的节: /log/myDevice/myDevice.log { compress daily rotate 360 maxage 360 missingok compresscmd /usr/bin/xz dateext compressext .xz copytruncate olddir /log/archive/myDevice } 我想手动做这些事情: copytruncate:抓取当前的日志文件,但是允许syslog-ng保持当前的打开/活动文件 (不在logrotate.conf中) split :将当前日志分割成更小的块 xz :压缩到存档文件夹 我可以split(1)和xz(1)就好,但是当我试图抓住目标文件,没有骰子。 我尝试了sudo mv myDevice.log ZmyDevice.log && touch myDevice.log ,但syslog-ng只是移动原始文件(及其新名称),并保持愉快的写道。 自从我思考syslog-ng如何引用该文件以来,这个问题就有了一些改进。 所以我想弄清楚如何做一些手动的copytruncate ,以便将文件切换到原来的位置,并让syslog-ng保持原样。
我正在使用CentOS,NGINX和Passenger来服务Rails应用程序。 我有SELinux激活,并有一系列与logrotate的问题。 我已经能够通过在线提供各种build议来解决大部分问题。 不幸的是,logrotate没有成功的旋转我的NGINX日志文件。 NGINX安装在/ opt / nginx中 这是我的logrotateconfiguration文件: /opt/nginx/logs/*log { daily rotate 30 missingok notifempty sharedscripts delaycompress postrotate [ ! -f /opt/nginx/logs/nginx.pid ] || kill -USR1 `cat /opt/nginx/logs/nginx.pid` endscript } 这些是我在/ var / log / messages中收到的消息 Mar 9 03:49:14 localhost setroubleshoot: SELinux is preventing /usr/sbin/logrotate from rename access on the file logrotate_temp.RTg4y3. For complete […]