Portál AbcLinuxu, 10. května 2025 09:05
while(true);do dat=`date +%F_%R:%S.%N.log` ./prikaz > ./log_soubory/$dat doneinformace po spusteni se jiz nevypisuji, takze presmerovani funguje. Problem je ten, ze se nic do souboru nezapise. Zkousel jsem to obejit treba pomoci
obsah=`./prikaz` echo $prikaz > ./log_soubory/$datale to taktez nevedlo k cili. Nevite jak udelat presmerovani, aby zapisovalo do souboru okazmite a nektere vypisy programu se neztracely? Diky PaD
Nejspíš je problém v tom, že jste tam nepřesměroval chybový výstup. Takže
./prikaz >log_soubory/$dat 2>&1
./prikaz | tee ./log_soubory/$dat
#!/bin/bash while true; do Log=./log_soubory/`date +%F_%R:%S.%N`.log echo "=== Log: $Log" >> $Log ./prikaz >> $Log done
#!/usr/bin/env python import subprocess, time logfile = file('logfile', 'w') prikaz = ['./first.py'] count = 0 while True: count += 1 cmd = subprocess.Popen(prikaz, stdout = subprocess.PIPE) logfile.write(time.ctime() + ': restart %d\n' %count) while True: line = cmd.stdout.readline() if not line: break logfile.write(time.ctime() + ': ' + line) logfile.flush()Vytváří pouze jeden log (přišlo mi to rozumnější) a každý řádek je označený datem a časem - zkrátka jako normální logy. Do logu se zapíšou i události o restartu, přičemž restarty se číslují.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.