glaskugel
Anmeldungsdatum: 8. Juli 2010
Beiträge: 3244
|
Ich habe mir ein Sript geschrieben, das den Load per Cronjob überprüft.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 | trigger=4.00
load=`cat /proc/loadavg | awk '{print $1}'`
response=`echo | awk -v T=$trigger -v L=$load 'BEGIN{if ( L > T){ print "greater"}}'`
up_time=`uptime | cut -f3-6 -d" " | cut -f1 -d","`
if [ "$response" = "greater" ] ; then
echo `date`" STOP apache: load $load - $up_time" >> /var/log/load.log
/etc/init.d/apache2 stop
else
apache2_pid=`pidof apache2`
if [ -z "$apache2_pid" ]; then
echo `date`" START apache: load $load - $up_time" >> /var/log/load.log
/etc/init.d/apache2 start
apache2_pid=`pidof apache2`
if [ -n "$apache2_pid" ]; then
echo "----------------------" >> /var/log/load.log
fi
else
echo `date`" load $load - $up_time" >> /var/log/load.log
fi
fi
|
Nun hätte ich gerne, dass neue Einträge in der Logdatei am Anfang stehen, Gibt es da vielleicht was anderes als ">>"? Ich könnte natürlich die Ausgabe von date anders definieren und dann jedesmal sort benutzen.
|
Vain
Anmeldungsdatum: 12. April 2008
Beiträge: 2503
|
Ist ungünstig. Bei sowas muss man dann immer die ganze Datei komplett neu schreiben. Andere Frage: Warum willst’n das machen? Geht’s ums Angucken? Kennst du tac ?
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28335
Wohnort: WW
|
Hallo,
nun hätte ich gerne, dass neue Einträge in der Logdatei am Anfang stehen,
Das geht IMHO nicht, ohne die Datei jedes mal komplett neu zu schreiben. Du kannst an "normale" (Text-) Dateien nur was dran hängen, nicht an beliebiger Stelle "on the fly" was einfügen. Alternativ könntest du die Daten in eine Datenbank schreiben (z.B. SQLite), dann kannst du später die Daten flexibel abfragen. Gruß, noisefloor
|
glaskugel
(Themenstarter)
Anmeldungsdatum: 8. Juli 2010
Beiträge: 3244
|
Andere Frage: Warum willst’n das machen? Geht’s ums Angucken? Kennst du tac?
Das ist auch eine Idee, ich wollte primär wissen, ob es da was gibt, das ich nicht kenne. Ich muss sowieso noch nachdenken, wie ich die Größe der Datei eingrenze. Vermutlich ist alles umsonst. Es geht um einen Webserver, der einen hohen Load über längere Zeit hatte. Suspension Reason: Load outside of acceptable limits: 00:22:17 up 15 days, 7:00, 0 users, load average: 18.88, 17.21, 16.47 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 33344 2024 ? Ss May25 0:00 init
root 2 0.0 0.0 0 0 ? S May25 0:00 [kthreadd/12608]
root 3 0.0 0.0 0 0 ? S May25 0:00 [khelper/12608]
root 136 0.0 0.0 19424 540 ? S May25 0:00 upstart-udev-bridge --daemon
root 162 0.0 0.0 49216 1184 ? Ss May25 0:00 /lib/systemd/systemd-udevd --daemon
root 404 0.0 0.0 15604 788 ? S May25 0:00 upstart-socket-bridge --daemon
root 405 0.0 0.0 15356 572 ? S May25 0:00 upstart-file-bridge --daemon
root 433 0.0 0.0 23604 904 ? Ss May25 0:02 cron
root 445 0.0 0.0 61328 1544 ? Ss May25 0:00 /usr/sbin/sshd -D
root 484 0.0 0.0 31044 516 ? S May25 0:00 supervising syslog-ng
root 485 0.0 0.2 77884 15104 ? Ss May25 0:19 /usr/sbin/syslog-ng -p /var/run/syslog-ng.pid
mysql 491 0.8 3.9 2445724 247092 ? SNsl May25 190:02 /usr/sbin/mysqld
root 631 0.0 0.0 25292 1216 ? Ss May25 0:03 /usr/lib/postfix/master
postfix 644 0.0 0.0 27408 1176 ? S May25 0:00 qmgr -l -t unix -u
root 704 0.0 0.3 369684 21056 ? Ss May25 0:42 /usr/sbin/apache2 -k start
www-data 1318 1.4 0.5 386960 37624 ? S 00:06 0:14 /usr/sbin/apache2 -k start
www-data 1381 1.5 0.6 387052 39516 ? S 00:06 0:14 /usr/sbin/apache2 -k start
root 1920 0.0 0.0 12736 804 tty1 Ss+ May25 0:00 /sbin/getty 38400 console
root 1922 0.0 0.0 12736 812 tty2 Ss+ May25 0:00 /sbin/getty 38400 tty2
www-data 2134 2.2 0.6 387084 40416 ? S 00:11 0:13 /usr/sbin/apache2 -k start
www-data 2137 1.6 0.5 383676 34264 ? S 00:11 0:10 /usr/sbin/apache2 -k start
www-data 2239 1.8 0.5 383700 34248 ? S 00:12 0:10 /usr/sbin/apache2 -k start
www-data 2258 1.5 0.5 383700 34252 ? S 00:12 0:08 /usr/sbin/apache2 -k start
www-data 2264 1.6 0.5 383732 34316 ? S 00:12 0:09 /usr/sbin/apache2 -k start
www-data 2302 0.8 0.5 383676 34228 ? S 00:12 0:04 /usr/sbin/apache2 -k start
www-data 2306 1.1 0.5 383684 34248 ? S 00:12 0:06 /usr/sbin/apache2 -k start
www-data 2323 1.6 0.5 383680 34236 ? S 00:12 0:09 /usr/sbin/apache2 -k start
www-data 2379 1.3 0.4 373700 25812 ? S 00:12 0:07 /usr/sbin/apache2 -k start
www-data 2381 1.6 0.6 386940 40152 ? S 00:12 0:09 /usr/sbin/apache2 -k start
www-data 2398 1.6 0.5 383724 34332 ? S 00:12 0:09 /usr/sbin/apache2 -k start
www-data 2563 1.8 0.6 386924 39956 ? S 00:13 0:09 /usr/sbin/apache2 -k start
www-data 2587 2.3 0.5 383680 34284 ? S 00:13 0:11 /usr/sbin/apache2 -k start
www-data 2590 1.6 0.6 386924 39308 ? S 00:13 0:08 /usr/sbin/apache2 -k start
www-data 2600 1.3 0.4 374380 26516 ? S 00:13 0:06 /usr/sbin/apache2 -k start
www-data 2618 1.9 0.5 383680 34244 ? S 00:13 0:09 /usr/sbin/apache2 -k start
www-data 2620 1.3 0.3 371928 24008 ? S 00:13 0:06 /usr/sbin/apache2 -k start
www-data 2623 1.9 0.4 376432 30964 ? S 00:13 0:09 /usr/sbin/apache2 -k start
www-data 2627 1.8 0.5 383776 34396 ? S 00:13 0:09 /usr/sbin/apache2 -k start
www-data 2637 1.3 0.5 383680 34248 ? S 00:13 0:06 /usr/sbin/apache2 -k start
www-data 2643 1.6 0.5 383680 34248 ? S 00:13 0:07 /usr/sbin/apache2 -k start
www-data 2682 1.8 0.5 383684 34252 ? S 00:14 0:08 /usr/sbin/apache2 -k start
www-data 2959 1.5 0.5 383680 34244 ? S 00:16 0:05 /usr/sbin/apache2 -k start
www-data 2974 1.3 0.5 383680 34248 ? S 00:16 0:05 /usr/sbin/apache2 -k start
www-data 2976 2.3 0.6 386988 40080 ? S 00:16 0:08 /usr/sbin/apache2 -k start
www-data 2987 2.6 0.4 373200 25276 ? S 00:16 0:09 /usr/sbin/apache2 -k start
www-data 2994 1.4 0.5 383700 34248 ? S 00:16 0:05 /usr/sbin/apache2 -k start
www-data 3010 1.6 0.3 372240 24320 ? S 00:16 0:05 /usr/sbin/apache2 -k start
www-data 3012 2.0 0.5 383692 34244 ? S 00:16 0:07 /usr/sbin/apache2 -k start
www-data 3016 1.3 0.5 383680 34224 ? S 00:16 0:04 /usr/sbin/apache2 -k start
www-data 3018 1.5 0.5 383680 34244 ? S 00:16 0:05 /usr/sbin/apache2 -k start
www-data 3019 2.1 0.5 383812 34536 ? S 00:16 0:07 /usr/sbin/apache2 -k start
www-data 3021 2.0 0.5 383684 34256 ? S 00:16 0:07 /usr/sbin/apache2 -k start
www-data 3024 1.7 0.5 383700 34244 ? S 00:16 0:06 /usr/sbin/apache2 -k start
www-data 3026 1.9 0.5 383680 34232 ? S 00:16 0:07 /usr/sbin/apache2 -k start
www-data 3037 1.9 0.4 373368 25616 ? S 00:16 0:06 /usr/sbin/apache2 -k start
www-data 3226 2.0 0.5 383712 34348 ? S 00:17 0:06 /usr/sbin/apache2 -k start
www-data 3227 0.9 0.3 371580 23692 ? S 00:17 0:02 /usr/sbin/apache2 -k start
www-data 3230 0.8 0.5 383680 34232 ? S 00:17 0:02 /usr/sbin/apache2 -k start
www-data 3233 1.2 0.5 383680 34244 ? S 00:17 0:03 /usr/sbin/apache2 -k start
www-data 3241 1.4 0.3 372588 24700 ? S 00:17 0:04 /usr/sbin/apache2 -k start
www-data 3245 1.5 0.5 383812 34520 ? S 00:17 0:04 /usr/sbin/apache2 -k start
www-data 3249 1.1 0.3 373068 25148 ? S 00:17 0:03 /usr/sbin/apache2 -k start
www-data 3391 1.6 0.4 374208 26276 ? S 00:18 0:04 /usr/sbin/apache2 -k start
www-data 3393 1.1 0.5 383672 34244 ? S 00:18 0:02 /usr/sbin/apache2 -k start
www-data 3394 1.2 0.5 383680 34236 ? S 00:18 0:03 /usr/sbin/apache2 -k start
www-data 3395 1.7 0.5 383776 34412 ? S 00:18 0:04 /usr/sbin/apache2 -k start
www-data 3491 1.4 0.5 383680 34236 ? S 00:19 0:02 /usr/sbin/apache2 -k start
www-data 3494 1.5 0.5 383680 34236 ? S 00:19 0:02 /usr/sbin/apache2 -k start
www-data 3500 2.2 0.5 383728 34312 ? S 00:19 0:03 /usr/sbin/apache2 -k start
www-data 3710 2.4 0.4 375452 27552 ? S 00:20 0:01 /usr/sbin/apache2 -k start
www-data 3712 1.6 0.5 381144 32156 ? S 00:20 0:01 /usr/sbin/apache2 -k start
www-data 3713 1.6 0.5 381144 32148 ? S 00:20 0:01 /usr/sbin/apache2 -k start
www-data 3718 2.1 0.4 373200 25312 ? S 00:20 0:01 /usr/sbin/apache2 -k start
www-data 3719 1.4 0.5 381120 32140 ? S 00:20 0:01 /usr/sbin/apache2 -k start
www-data 3721 1.7 0.5 381144 32136 ? S 00:20 0:01 /usr/sbin/apache2 -k start
www-data 3725 1.7 0.3 371292 23360 ? S 00:20 0:01 /usr/sbin/apache2 -k start
www-data 3729 2.0 0.5 383776 34392 ? S 00:20 0:01 /usr/sbin/apache2 -k start
postfix 3733 0.0 0.0 27356 1552 ? S 00:20 0:00 pickup -l -t unix -u -c
www-data 3767 0.7 0.5 380824 31572 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3768 1.8 0.5 381144 32144 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3771 1.1 0.5 381084 31960 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3772 1.1 0.5 381084 31952 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3773 2.1 0.5 381168 32228 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3774 2.9 0.5 383700 34240 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3777 2.6 0.3 371928 23996 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3778 3.0 0.4 373184 25260 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3779 2.8 0.0 0 0 ? Z 00:21 0:01 [/usr/sbin/apach] <defunct>
www-data 3780 2.9 0.4 376272 28576 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3781 3.5 0.4 373184 25264 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3782 2.8 0.4 376104 28232 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3784 1.8 0.5 381144 32144 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3795 1.1 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3797 1.3 0.4 373176 25276 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3798 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3799 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3800 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3801 1.1 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3802 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3803 1.1 0.5 381084 31952 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3804 1.4 0.4 373184 25244 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3805 1.3 0.5 381084 31960 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3806 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3807 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3808 1.1 0.5 381084 31960 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3809 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3810 1.5 0.4 373184 25244 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3824 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3825 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3826 1.2 0.5 381084 31964 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3827 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3828 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3829 1.5 0.4 373184 25256 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3830 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3831 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3832 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3833 1.9 0.4 374208 26272 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3834 1.6 0.4 376444 30336 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3835 1.7 0.3 371332 23444 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3836 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3837 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3838 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3839 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3840 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3841 1.2 0.5 381084 31952 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3842 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3845 0.9 0.5 380824 31572 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3851 1.2 0.5 381084 31960 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3852 1.7 0.4 373184 25252 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3853 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3854 1.3 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3855 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3856 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3857 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3870 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3871 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3872 2.4 0.5 383680 34228 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3873 2.5 0.4 373184 25252 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3887 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3888 1.3 0.5 381084 31960 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3889 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3890 1.2 0.5 381084 31960 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3891 1.2 0.5 381084 31952 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3892 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3893 2.3 0.4 374208 26284 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3894 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3895 1.2 0.4 373144 25200 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3897 2.5 0.5 383680 34228 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3899 2.5 0.5 383680 34232 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3902 2.3 0.5 381264 32440 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3903 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3904 2.3 0.3 371620 23732 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3905 0.9 0.5 380824 31572 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3906 3.2 0.4 373824 25940 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3907 1.4 0.3 372184 24248 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3908 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3909 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3910 1.6 0.4 374208 26272 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3911 2.5 0.5 383680 34232 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3912 1.6 0.3 371580 23644 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3913 1.2 0.5 381084 31948 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3939 1.8 0.4 374380 28312 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3945 1.5 0.4 373144 25200 ? S 00:21 0:00 /usr/sbin/apache2 -k start
www-data 3946 2.9 0.5 380864 31888 ? S 00:21 0:01 /usr/sbin/apache2 -k start
www-data 3962 3.0 0.4 373144 25196 ? S 00:21 0:00 /usr/sbin/apache2 -k start Der Provider hat behauptet, dass ein Reboot nicht half, aber seit "meinem" Reboot ist der Load deutlich unter 1. Jetzt stop ich einfach apache und bekomme ein Warnmail von externen Überwachungsdiensten. Wenn der Webserver mal 1h down ist, weil bei meinem virtuellen Server was nicht passt, dann ist das normalerweise keine Katastrophe. In der Regel sind es Wartungsarbeiten vom Provider, wenn was down ist und da kann ich sowieso nichts machen.
|
Vain
Anmeldungsdatum: 12. April 2008
Beiträge: 2503
|
glaskugel schrieb: Ich muss sowieso noch nachdenken, wie ich die Größe der Datei eingrenze.
Logrotate wäre natürlich ’ne Idee. Oder du machst es manuell. Beispielhaftes Gerüst: | while sleep 1
do
date >>logfile
tail -n 10 <logfile >logfile.new && mv logfile.new logfile
done
|
Zielführender wäre natürlich, herauszufinden, woher die hohe Load auf deinem Server kommt. 😉 (Auch wenn ich es wunderlich finde, dass sich der Provider deswegen bei dir beschwert. Ist es nicht seine Aufgabe, dafür zu sorgen, dass sich einzelne Kunde nicht gegenseitig behindern? Sollte er nicht deine Ressourcen begrenzen? Naja. Anderes Thema.)
|
glaskugel
(Themenstarter)
Anmeldungsdatum: 8. Juli 2010
Beiträge: 3244
|
Zielführender wäre natürlich, herauszufinden, woher die hohe Load auf deinem Server kommt
Ich denke, das wird man nie herausfinden. Der verhält sich seit Stunden nach dem Reboot völlig brav.
Logrotate wäre natürlich ’ne Idee.
Vermutlich overkill. Wenn ich alle halbe Stunde den Load notiere, dann sind das pro Tag ca. 50 Einträge. Die letzten 500 Einträge sind im Problemfall mehr als genug. Ich könnte mir vorstellen, dass man da mit sed was basteln kann, aber wie könnte man das formulieren "behalte die letzten 500 Einträge/Zeilen", wenn noch gar keine 500 existieren.
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
glaskugel schrieb: ... Ich könnte mir vorstellen, dass man da mit sed was basteln kann,
Meinst Du, um die relevanten Zeilen heraus zu kristallisieren ? - kann man machen. Vielleicht reicht ja auch schon grep ? .. aber wie könnte man das formulieren "behalte die letzten 500 Einträge/Zeilen", wenn noch gar keine 500 existieren.
Wäre eigentlich eine typische Aufgabe für tail - dem ist es egal, wenn weniger da sind, dann nimmt er eben das was da ist. Habe ich denn ungefähr richtig verstanden was Du suchst ? - Sonst könntest Du evt. noch einmal anders formulieren, dann kriegen wir mit Sicherheit was zusammen gebastelt. LG, track
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12536
|
track schrieb:
Wäre eigentlich eine typische Aufgabe für tail - dem ist es egal, wenn weniger da sind, dann nimmt er eben das was da ist.
Genau. Oder, wenn man die Reihenfolge umdrehen will Ciao robert
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17433
Wohnort: Berlin
|
noisefloor schrieb: Hallo,
nun hätte ich gerne, dass neue Einträge in der Logdatei am Anfang stehen,
Das geht IMHO nicht, ohne die Datei jedes mal komplett neu zu schreiben. Du kannst an "normale" (Text-) Dateien nur was dran hängen, nicht an beliebiger Stelle "on the fly" was einfügen.
Doch, mit sed. | echo -e Zeile" "{1..3}"\n" | sed '1iZeile 0'
|
1i: Zeile 1, insert ...
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
user_unknown schrieb: nun hätte ich gerne, dass neue Einträge in der Logdatei am Anfang stehen,
Das geht IMHO nicht, ohne die Datei jedes mal komplett neu zu schreiben. Du kannst an "normale" (Text-) Dateien nur was dran hängen, nicht an beliebiger Stelle "on the fly" was einfügen.
Doch, mit sed.
| echo -e Zeile" "{1..3}"\n" | sed '1iZeile 0'
|
1i: Zeile 1, insert ...
Ähm - natürlich kann man eine Zeile als Vorspann mit einer Datei zusammenführen. Das geht sogar noch einfacher: | echo "zeile 0" | cat - meine_datei
|
Das war ja auch nicht der Punkt, sondern dass man dann die Datei neu schreiben muss (auch physikalisch !), wenn man vorne was davorhängt. (und das ist bei Deinem Vorschlag ja auch nicht anders) LG, track
|
glaskugel
(Themenstarter)
Anmeldungsdatum: 8. Juli 2010
Beiträge: 3244
|
Meinst Du, um die relevanten Zeilen heraus zu kristallisieren ? - kann man machen. Vielleicht reicht ja auch schon grep ?
Könnte sein, wie sehe ich mir die letzten 500 Zeilen an? Wenn es weniger sind, also alle?
Wäre eigentlich eine typische Aufgabe für tail - dem ist es egal, wenn weniger da sind, dann nimmt er eben das was da ist.
tail klingt gut tail -500 log > log Könnte man so was machen. Ich möchte mir sparen in eine 2. Datei umzuleiten, dann die 1. löschen und die 2. umbenennen.
Habe ich denn ungefähr richtig verstanden was Du suchst ?
Es geht primär darum, dass die Datei nicht immer größer wird, das keinen Nutzen bringt.
Genau. Oder, wenn man die Reihenfolge umdrehen will
Ich denke mit tac kommt ein Chaos raus, da dann die Sortierung ja jedes Mal wechselt.
Das war ja auch nicht der Punkt, sondern dass man dann die Datei neu schreiben muss (auch physikalisch !), wenn man vorne was davorhängt.
Ich denke die Datei neuschreiben werde ich immer müssen, es sollte nur möglichst effizient sein.
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
glaskugel schrieb: tail -500 log > log
Probier es doch aus, mit einer Testdatei ! - Du wirst verblüfft sein, dass die Datei hinterher leer ist. Denn zuerst wird die Dateiumleitung angelegt (mit einer leeren Datei) und dann greift tail darauf zu. ... 🐸 Könnte man so was machen. Ich möchte mir sparen in eine 2. Datei umzuleiten, dann die 1. löschen und die 2. umbenennen.
Wird physikalisch nicht gehen: denn irgendwo musst Du Deine Daten in der Zwischenzeit ja speichern. Rein praktisch ist es sowieso eher sinnvoll, mit 2 Dateien zu arbeiten. Denn dann kann die "echte" Log- Datei weiter in Betrieb bleiben, während man sich die umgedrehte Datei anguckt: tail -500 log > log_angucken Auf die paar 100 kByte kommt es ja nun auch nicht an. LG, track
|
glaskugel
(Themenstarter)
Anmeldungsdatum: 8. Juli 2010
Beiträge: 3244
|
Auf die paar 100 kByte kommt es ja nun auch nicht an.
Magst recht heben, bei 1&2 stünldichen Loggen sind das ca. 100kB im Monat.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17433
Wohnort: Berlin
|
track schrieb: echo "zeile 0" | cat - meine_datei Das war ja auch nicht der Punkt, sondern dass man dann die Datei neu schreiben muss (auch physikalisch !), wenn man vorne was davorhängt. (und das ist bei Deinem Vorschlag ja auch nicht anders)
Mit dem Schalter -i kann man bei sed in die Datei selbst schreiben, ich dachte das sei allgemein bekannt: | cat datei
Zeile 1
Zeile 2
Zeile 3
sed -i '1iZeile 0' datei ; cat datei
Zeile 0
Zeile 1
Zeile 2
Zeile 3
|
Bearbeitet von sebix: Codeblock im Zitat korrigiert.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12536
|
user_unknown schrieb: track schrieb: echo "zeile 0" | cat - meine_datei Das war ja auch nicht der Punkt, sondern dass man dann die Datei neu schreiben muss (auch physikalisch !), wenn man vorne was davorhängt. (und das ist bei Deinem Vorschlag ja auch nicht anders)
Mit dem Schalter -i kann man bei sed in die Datei selbst schreiben, ich dachte das sei allgemein bekannt:
Aber natürlich schreibt auch sed die Datei neu. Es wird nur scheinbar in dieselbe Datei geschrieben. Tatsächlich wird erst in eine temporäre Datei geschrieben, die dann umbenannt wird. Ich dachte, das sei Dir bekannt. 😉 Man kann das auch leicht an der geänderten Inode-ID erkennen: | $ echo a >|x
$ cat x
a
$ ls -i x
1575261 x
$ sed -i '1 iTEXT' x
$ cat x
TEXT
a
$ ls -i x
1579484 x
|
Genau das meint track - und hat damit Recht.
|