2010-12-21 15 views
0

würde Ich mag einen Cron tak einzuführen, wird ‚gzip‘ Dateien mit folgenden Regel:Cron-Dateien komprimieren

  1. Dateien in einem Ordnernamen Locate ‚/ lügt‘ (können überall im Dateisystem befinden und)

  2. gzip-Dateien, die älter als 2 Tage, die './log' im Dateinamen haben Griff

ich geschrieben habe, ein das Skript unten - w das geht nicht - bin ich nah dran? Was ist erforderlich, damit es funktioniert? Vielen Dank.

/usr/bin/find ./logs -mtime +2 -name "*.log*"|xargs gzip

+4

Warum sind Sie kein geeignetes Werkzeug dafür, wie logrotate verwendet? –

Antwort

1

In meiner crontab, nenne ich:

/usr/sbin/logrotate -s ~/.logrotate/status ~/.logrotate/logrotate.conf 

In meiner ~/.logrotate/logrotate.conf:

# rotate log files weekly 
weekly 

# keep 4 weeks worth of backlogs 
rotate 4 

## compression 

# gzip(1) 
#compresscmd /usr/bin/gzip 
#compressoptions -9 
#uncompresscmd /usr/bin/gunzip 
#compressext .gz 

# xz(1) 
compresscmd /usr/bin/xz 
uncompresscmd /usr/bin/xzdec 
compressext .xz 

/home/h3xx/.log/*.log /home/h3xx/.log/jack/*.log { 
    # copy and truncate original (for always-open file handles 
    # [read: tail -f]) 
    copytruncate 

    # enable compression 
    compress 
} 

/home/h3xx/.usage/*.db { 
    # back up databases 
    copy 

    # enable compression 
    compress 
} 
0

Das -name Argument nimmt einen Glob. Ihr Befehl würde nur Dateien entsprechen, die im wahrsten Sinne des Wortes .log heißen. Versuchen Sie -name "*.log".

+0

Das war nur schlechte Formatierung – Hasturkun