Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12467[/thread]

Ist dieses Script bei mir möglich, wenn ja wie?

Leser: 1


<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Knevil
 2008-09-10 11:40
#114468 #114468
User since
2008-09-10
5 Artikel
BenutzerIn
[default_avatar]
Hi,
ich muss direkt sagen ich bin ein ziemlicher Perl noob nur habe ich im moment ein Preoblem das ich ein Perl Script brauche und keine Ahnung habe wie ich dieses einbauen soll.

Hier erstmal die Serverdaten:
Apache/1.3.37 (Unix) (Gentoo)
TuxTrafficLogRotate/20051209-00
TuxSQLConf/20070207-00
mod_perl/1.29
PHP/4.4.7-tuxtools
FrontPage/5.0.2.2635


Das Script soll per FTP hochgeladene Logdateien auslesen,mit dem Perl Programm Stasiscl (läuft im mom noch Lokal bei mir und funzt, darum ja jetzt dieses Script) parsen und dann die Ausgabe im Vorgefertigten Ordner Speichern.

und hier das Script:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/usr/bin/perl

TMP=/tmp

#### Directories & Stasis Location
####
#### Edit these to suit your needs

# RAID = where you want your raid files
RAID=~/raidstats/logs/raids/
LOGS=~/raidstats/logs-in
OLD=~/raidstats/logs-old
REPO=~/raidstats/logs/

# Directory in which stasis lives
STASIS=~/raidstats/stasiscl

mkdir -p $RAID $LOGS $OLD $REPO

# Lockfile

if [ -f /tmp/log.processing ]; then
    exit;
fi
touch /tmp/log.processing

# The commented out line is what I use, because I process these on a different host than people ftp them to. I left it in for example only.

cd $LOGS
# /usr/local/bin/wget --quiet --delete-remote --ftp-user=wildly_logs --ftp-password=XXXX ftp://www.XXXX.org/*

if [ `ls $LOGS | wc -l` -eq 0 ]; then
    rm /tmp/log.processing
    exit
fi

ls $LOGS

if [ `ls *.zip 2> /dev/null | wc -l` -gt 0 ]; then
    for ZIP in *.zip ; do
        /usr/local/bin/unzip -qq "$ZIP"
        mv "$ZIP" $OLD
    done
fi

if [ `ls *.ZIP 2> /dev/null | wc -l` -gt 0 ]; then
    for ZIP in *.ZIP ; do
        /usr/local/bin/unzip -qq "$ZIP"
        mv "$ZIP" $OLD
    done
fi

if [ `ls *.gz 2> /dev/null | wc -l` -gt 0 ]; then
    for GZ in *gz; do
        /usr/bin/gunzip -q -c "$GZ" > "$GZ.txt"
        mv "$GZ" $OLD
    done
fi

# Mac cleanup
rm -rf $LOGS/__MACOSX

for LOG in *; do
    if [ -f "$LOG" ]; then
        echo "Processing $LOG..."
        cp "$LOG" $TMP
        mv "$LOG" $OLD

        # Date stuff

        ODATE=`head -10 "$TMP/$LOG" | tail -1 | awk '{ print $1 }'`
        DAY=${ODATE##*/}
        MON=${ODATE%%/*}
        YEAR=`date +%y`
        if [ $MON -eq "12" ]; then
            if [ `date +%m` -eq "01" ]; then
                YEAR=`date -v-1y +%y`
            fi
        fi
        if [ ${#DAY} -eq 1 ]; then
            DAY=0$DAY;
        fi
        if [ ${#MON} -eq 1 ]; then
            MON=0$MON;
        fi
        DATE=${MON}-${DAY}-${YEAR}

        if [ -f "$REPO/$LOG" ]; then
            rm /tmp/log.processing
            exit
        fi

        grep "^${ODATE}" "$TMP/$LOG" > "$TMP/$LOG.out"
        rm "$TMP/$LOG"

        # What raid?

        INSTANCE=`~/bin/getraid.pl "$TMP/$LOG.out"`

        # Other logs?

        LAST=1
        if [ -f $REPO/${DATE}-${INSTANCE}.1.txt.gz ]; then
            LAST=`ls $REPO | tail -1`
            LAST=${LAST#*.}
            LAST=${LAST%.txt.gz}
            LAST=$(( $LAST + 1 ))
        fi

        # Move into place

        cp "$TMP/$LOG.out" $REPO/${DATE}-${INSTANCE}.${LAST}.txt
        rm "$TMP/$LOG.out"

        # Prep directory

        mkdir -p $RAID/$MON-$YEAR

        # Stasis

        START=`date +%s`

        cd $STASIS
        ./stasis add -dir $RAID/$MON-$YEAR -file $REPO/${DATE}-${INSTANCE}.${LAST}.txt -attempt -trash -overall -collapse

        echo -n "Run time: "
        echo -n $(( `date +%s` - $START ))
        echo " seconds."

        # Tidy up

        echo "Added $REPO/${DATE}-${INSTANCE}.${LAST}.txt"
        gzip $REPO/${DATE}-${INSTANCE}.${LAST}.txt
        cd $LOGS
    fi
done

rm -f /tmp/log.processing


Das 2. Script ist np da muss man nix anpassen darum hab ichs mal nicht gepostet, Der Pfad zu Perl stimmt auch, abgelegt habe ich das Script bei mir in CGI-BIN (wo ich denke das es auch hingehört)

Hoffe jemand könnte mir sagen woran es liegt das es nicht läuft, angezeigt wird:
The server encountered an internal error or misconfiguration and was unable to complete your request.
jan
 2008-09-10 11:51
#114469 #114469
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
>>001: #!/usr/bin/perl

das ist kein perl, sondern ein shell-script. lass es mal von bash interpretieren, dann sollte es auch (eher) laufen. allerdings ist das offenbar auch nicht für den cgi-einsatz gedacht.
Knevil
 2008-09-10 11:54
#114470 #114470
User since
2008-09-10
5 Artikel
BenutzerIn
[default_avatar]
nene es ist für einen cron gedacht, dachte nur die scripte müssen auf jedenfall da abgelegt werden
renee
 2008-09-10 12:17
#114472 #114472
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was jan meinte: Alles was nach der ersten Zeile kommt, hat nix mit Perl zu tun! Entweder musst Du das Skript umschreiben oder Du darfst es nicht von Perl-Interpreter interpretieren lassen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Knevil
 2008-09-10 12:21
#114473 #114473
User since
2008-09-10
5 Artikel
BenutzerIn
[default_avatar]
naja ich warte erstmal bis jemand ne andre möglichkeit dafür gefunden hat, das ist mir doch alles ein bissi zu kompliziert ;)

parse ich halt weiter von hand und lads hoch.

Trotzdem Danke für eure Hilfe
pq
 2008-09-10 12:34
#114474 #114474
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
und das hat das jetzt bitte mit webprogrammierung in perl und CGI zu tun?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
pq
 2008-09-10 12:35
#114475 #114475
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Knevil+2008-09-10 10:21:34--
naja ich warte erstmal bis jemand ne andre möglichkeit dafür gefunden hat, das ist mir doch alles ein bissi zu kompliziert ;)

die erste zeile mit dem pfad zu ner shell zu ersetzen ist dir zu kompliziert?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Knevil
 2008-09-10 15:50
#114487 #114487
User since
2008-09-10
5 Artikel
BenutzerIn
[default_avatar]
dafür bräuchte ich ne shell :)
RalphFFM
 2008-09-10 16:09
#114488 #114488
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo Knevil, da gibts möglicherweise ein Mißverständnis. Kann es sein, daß Du unter Shell etwas rein Interaktives verstehst? Der Tipgeber dagegen meinte damit (m.E.) ein Programm wie z.B. die Bash, die Deine o.g. Befehlsabfolge ausführt.
Knevil
 2008-09-10 16:55
#114492 #114492
User since
2008-09-10
5 Artikel
BenutzerIn
[default_avatar]
Ich sag doch ich bin da voll der noob ;)

wärt ihr dann so lieb mir das "bitte" auf noobisch zu erklären, also ich dachte bisher immer eine shell wäre ein ssh zugang zu meinem server und den habe ich leider nicht.

php,sql kein thema aber mit sowas musst ich mich bisher noch nie beschäftigen :)

nochmal zur info, der server ist ein webspace paket mit php,perl,sql frontpage und so leider ohne ssh zugang.

Das script soll hiterher per Cronjob ausgeführt werden

hier mal der text vom originalen dev des scriptes
Quote
This is a pair of scripts which I use to automatically handle log uploads. My goal was to be able to allow people to upload logs into an FTP directory, and run a script out of cron that would periodically check that directory and do intelligent things. I wanted the logs to be renamed, organized, and so forth.

It assumes four directories -- one for incoming logs, one for processed logs, one for raids, and one for saved files (which is a backup, so if something screws up you can go get the originals).


evtl hab ich ja auch was daran falsch verstanden und es kann auf meinem server nicht klappen.
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2008-09-10 11:40.