rails & nginx logfiles täglich backupen

Gast #4355497
Lesenswert?

Ich möchte gerne die Logfiles, die durch nginx (access.log, error.log) 
und rails (production.log) generiert werden täglich wegschieben und 
neuschreiben lassen.

Dafür habe ich folgendes Skript geschrieben, welches täglich durch cron 
ausgeführt wird:
1
#!/usr/bin/env ruby
2

3
require 'fileutils'
4
require 'date'
5
include FileUtils
6

7
cd '/var/backup'
8
mkdir_p 'mein_projekt'
9
cd 'mein_projekt'
10

11
date_dir = Date.today.strftime( "%Y/%m/%d" )
12
mkdir_p date_dir
13
cd date_dir
14

15
cp '/var/www/mein_projekt/shared/log/production.log', '.'
16
File.truncate( '/var/www/mein_projekt/shared/log/production.log', 0 )
17

18
cp '/var/log/www/mein_projekt/access.log', '.'
19
File.truncate( '/var/log/www/mein_projekt/access.log', 0 )
20

21
cp '/var/log/www/mein_projekt/error.log', '.'
22
File.truncate( '/var/log/www/mein_projekt/error.log', 0 )
23

24
%x( kill -USR1 $( cat /run/nginx.pid ) )
25
touch '/var/www/mein_projekt/current/tmp/restart.txt'
26
chown 'mein_deploy_user', 'mein_deploy_user', '/var/www/mein_projekt/current/tmp/restart.txt'

Ziel ist es, dies möglichst unterbrechungsfrei zu machen.
Das Skript wird als root ausgeführt, um die Berechtigungen der Dateien 
beizubehalten kopiere und truncate ich die Dateien.
Nachdem das gemacht wurde starte ich die Prozesse neu damit die logfiles 
neu aufgemacht werden und nach dem truncaten nicht bei der alten Größe 
weitermachen.
Ist dies das korrekte Vorgehen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren