The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Script til automatisk sletning af gamle mappe summerpeh Sun Solaris 5 09-04-2008 11:27 PM
script til sletning med jokertegn aishu UNIX for dummyer Spørgsmål & svar 1 01-09-2008 05:37 PM
Script til automatisk sletning af papirkurv fil med e-mail-server crown2100bd Sun Solaris 1 09-20-2007 09:01 AM
Script til automatisk sletning af gamle filer vivek_scv Shell Programmering og Scripting 4 09-09-2007 02:57 AM
dynamiske globale script isingh786 Shell Programmering og Scripting 2 01-24-2007 08:35 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 10-16-2008
cbo0485 cbo0485 is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 87
Dynamisk Log Sletning / Rotatoin Script

Jeg har skrevet en mindre statisk script for min log sletning, men jeg tænkte på, om der var en måde at gøre det til en dynamisk script. her er, hvordan mit manuskript i øjeblikket arbejder.

Code:
#!/bin/sh
###########################################
#Script to zip logs older than 1 week old
#and to delete logs older than 30 days old
###########################################
#
##TEST
#
cd /opt/apache/test/logs
find . -name "access_*" -type f -mtime +8 -exec gzip {} \;
find . -name "access_*.gz" -type f -mtime +31 -exec rm {} \;
find . -name "error_*" -type f -mtime +8 -exec gzip {} \;
find . -name "error_*.gz" -type f -mtime +31 -exec rm {} \;
cd /opt/apache/test1/logs
find . -name "access_*" -type f -mtime +8 -exec gzip {} \;
find . -name "access_*.gz" -type f -mtime +31 -exec rm {} \;
find . -name "error_*" -type f -mtime +8 -exec gzip {} \;
find . -name "error_*.gz" -type f -mtime +31 -exec rm {} \;
cd /opt/apache/test2/logs
find . -name "access_*" -type f -mtime +8 -exec gzip {} \;
find . -name "access_*.gz" -type f -mtime +31 -exec rm {} \;
find . -name "error_*" -type f -mtime +8 -exec gzip {} \;
find . -name "error_*.gz" -type f -mtime +31 -exec rm {} \;
echo "Script complete on `date +%D`."
Nu for denne særlige script, må jeg blot kopiere og indsætte en ny blok, når jeg opretter en ny Apache-server, men jeg regnede med, da den mappestruktur og logfil navne er altid den samme, vil der være en eller anden måde kunne jeg tilføje i nogle faktiske logik om dette.

Muligvis cd til / opt / Apache /, lave en liste, så en eller anden måde bruge en matrix og en løkke til at indfange navnet på hver mappe i en variabel, og derefter bruge denne variabel til at køre finde kommando, gør disse 4 linjer, så hvis en anden mappe eksisterer gentage.
  #2 (permalink)  
Old 10-16-2008
Klashxx's Avatar
Klashxx Klashxx is offline Forum Advisor  
HP-UX/Linux/Oracle
  
 

Join Date: Feb 2006
Beliggenhed: Almería, Spanien
Posts: 393
Hej, skal du bruge:
Code:
find /opt/apache/test*/logs \( -name "access_*.gz" -o -name "error_*.gz" \) -type f -mtime +31 -exec rm {} \;
find /opt/apache/test*/logs \( -name "access_*" -o -name "error_*" \) -type f -mtime +8 -exec gzip {} \;
Hilsen
  #3 (permalink)  
Old 10-16-2008
cbo0485 cbo0485 is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 87
Citat:
Oprindeligt Indsendt af Klashxx View Post
Hej, skal du bruge:
Code:
find /opt/apache/test*/logs \( -name "access_*.gz" -o -name "error_*.gz" \) -type f -mtime +31 -exec rm {} \;
find /opt/apache/test*/logs \( -name "access_*" -o -name "error_*" \) -type f -mtime +8 -exec gzip {} \;
Hilsen
Testen * bibliotek er faktisk ikke alle opkaldt teste, er det navnet på vores webservere, og de ikke har et normalt mønster som dette. Kan jeg bare erstatte en * for test *? For at gøre det

Code:
find /opt/apache/*/logs \( -name "access_*.gz" -o -name "error_*.gz" \) -type f -mtime +31 -exec rm {} \;
find /opt/apache/*/logs \( -name "access_*" -o -name "error_*" \) -type f -mtime +8 -exec gzip {} \;
  #4 (permalink)  
Old 10-16-2008
Klashxx's Avatar
Klashxx Klashxx is offline Forum Advisor  
HP-UX/Linux/Oracle
  
 

Join Date: Feb 2006
Beliggenhed: Almería, Spanien
Posts: 393
Selvfølgelig!
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 03:07 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0