screen output (+errors) naar file saven

Pagina: 1
Acties:

  • Red devil
  • Registratie: December 1999
  • Laatst online: 18:37
Beste non-windows gebruikers,

Heb een minecraft server draaien op een N54L met XPenology erop en de laatste 5.1 DSM software.
De minecraft server kan los worden gestart met:

java -Xms256m -Xmx1g -XX:MaxPermSize=128M -jar spigot-1.8-R0.1-SNAPSHOT-latest.jarbackup

en ik start het hele zwikje in een screen met:

screen -h 10000 -d -m -S minecraft ./startSpigotServer 2>&1 | tee log.out

De laatste commands zouden ervoor moeten zorgen dat alle messages die voorbij komen (opstart dingen+chats+errors) naar log.out zouden gaan.

Echter, deze blijft leeg.
Is het uberhaupt mogelijk om de output van een screen naar een file te redirecten?

  • HollowGamer
  • Registratie: Februari 2009
  • Niet online
command > out.file

  • Red devil
  • Registratie: December 1999
  • Laatst online: 18:37
Dat werkt dan toch sowieso niet met error messages? Of vangt ie met screen alles af.

  • magistus
  • Registratie: December 2001
  • Laatst online: 28-09 11:57
Screen vangt alles af, probeer eens :
man screen
-L   tells screen to turn on automatic output logging for the windows.

  • thunder7
  • Registratie: Januari 2003
  • Laatst online: 21:50

thunder7

houten vaas/schaal nodig?

De vraag is wat screen en de shell als het commando zien en wat niet.

Maakt het verschil als je

screen -h 10000 -d -m -S minecraft "./startSpigotServer 2>&1 | tee log.out"

doet? Of als je een script maakt waar

#!/bin/sh
./startSpigotServer 2>&1 | tee log.out

instaat en

screen -h 10000 -d -m -S minecraft "./script.sh"

doet?

[ Voor 35% gewijzigd door thunder7 op 12-02-2015 20:42 ]

hout-nerd - www.hetmooistehout.nl of www.houtenschalen.nl


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:30

Hero of Time

Moderator LNX

There is only one Legend

Red devil schreef op donderdag 12 februari 2015 @ 18:47:
[...]


Dat werkt dan toch sowieso niet met error messages? Of vangt ie met screen alles af.
Standaard niet nee, maar als je 2>&1 > out.log doet, wel. Het ging even om 't idee. ;)
Het gebruik van 'tee' doet dat al, met het verschil dat je 't ook op je stdout krijgt, naast de uitvoer naar 't bestand.


De oplossing is precies zoals thunder7 zegt. Wat je nu doet is in principe dit:
'screen -h 10000 -d -m -S minecraft ./startSpigotServer 2>&1' | 'tee log.out'

Oftewel, alles wat screen zelf uitspuugt, komt in log.out terecht. Ik vraag mij eerder af waarom je screen gebruikt hiervoor. Waarom niet gewoon als script starten met & aan 't einde, bijvoorbeeld 'mc-server.sh &'.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Thralas
  • Registratie: December 2002
  • Laatst online: 30-09 08:10
Ik vermoed omdat TS de boel draaiende wil houden als de pty verdwijnt; backgrounded tasks zijn dan immers ook foetsie.

Screen, tmux, nohup of een initscript is dan een aardige oplossing.

Acties:
  • 0 Henk 'm!

  • Red devil
  • Registratie: December 1999
  • Laatst online: 18:37
Bedankt allen, vanavond even testen. Idd, zoals Thralas zegt, met screen blijft het goed draaien plus ik kan snel met een screen -r de console terughalen zodat ik commando's aan de server kan geven (bijv het spawnen van een X aantal zombies ;-))

Acties:
  • 0 Henk 'm!

  • Red devil
  • Registratie: December 1999
  • Laatst online: 18:37
thunder7 schreef op donderdag 12 februari 2015 @ 20:35:
Of als je een script maakt waar

#!/bin/sh
./startSpigotServer 2>&1 | tee log.out

instaat en

screen -h 10000 -d -m -S minecraft "./script.sh"

doet?
en dat laatste werkte perfect _/-\o_

thanks!

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:30

Hero of Time

Moderator LNX

There is only one Legend

Je commando in quotes zetten had ook genoeg geweest. Je wilt namelijk dat 'tee' ook in screen draait, niet de uitvoer van screen leest.

Oh, en als je 't log bestand wilt uitlezen, kan je dat met 'less' doen om vanaf 't opstarten te beginnen. Wil je daarna volgen wat er gebeurt, dan druk je op 'shift+f'. Voor stoppen gebruik je 'ctrl+c', sluiten gaat daarna met 'q'.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Red devil
  • Registratie: December 1999
  • Laatst online: 18:37
Hero of Time schreef op vrijdag 13 februari 2015 @ 20:38:
Je commando in quotes zetten had ook genoeg geweest. Je wilt namelijk dat 'tee' ook in screen draait, niet de uitvoer van screen leest.

Oh, en als je 't log bestand wilt uitlezen, kan je dat met 'less' doen om vanaf 't opstarten te beginnen. Wil je daarna volgen wat er gebeurt, dan druk je op 'shift+f'. Voor stoppen gebruik je 'ctrl+c', sluiten gaat daarna met 'q'.
Thanks for the tip! Nu je het zegt over die quotes, lijkt het inderdaad erg logisch.

Acties:
  • 0 Henk 'm!

  • GuntherDW
  • Registratie: November 2004
  • Laatst online: 29-12-2022
Ziende dat je met spigot werkt wat een afgeleide is van bukkit kan je ook gewoon een logging filename meegeven hoor, zonder dat je je druk moet maken om allerhande redirections.
Bukkit, en eigenlijk minecraft zelf ook werkt met log4j, wat je dus met een argument kan beinvloeden waar/hoe hij z'n logs opslaagt.

Wij hebben onze logging nog net zoals bij hmod liefst, dus moet het bij ons in logs/[UNIX timestamp van boot].log log zijn.

Als je dus --log-pattern gebruikt zoals aangegeven in de wiki is het niet moeilijk om te zien hoe je dat voor elkaar krijgt.
( http://wiki.bukkit.org/CraftBukkit_Command_Line_Arguments )

gewoon dus --log-pattern argument meegeven, of gewoon een hele andere log4j xml file als je zelfs wil.

Zal in the end ook beter werken imo dan zulke truukjes :p.

Trouwens, by default logt hij alles al naar server.log. Was dat niet genoeg?

[ Voor 4% gewijzigd door GuntherDW op 14-02-2015 18:51 ]


Acties:
  • 0 Henk 'm!

  • Red devil
  • Registratie: December 1999
  • Laatst online: 18:37
GuntherDW schreef op zaterdag 14 februari 2015 @ 18:48:
Ziende dat je met spigot werkt wat een afgeleide is van bukkit kan je ook gewoon een logging filename meegeven hoor, zonder dat je je druk moet maken om allerhande redirections.
Bukkit, en eigenlijk minecraft zelf ook werkt met log4j, wat je dus met een argument kan beinvloeden waar/hoe hij z'n logs opslaagt.

Wij hebben onze logging nog net zoals bij hmod liefst, dus moet het bij ons in logs/[UNIX timestamp van boot].log log zijn.

Als je dus --log-pattern gebruikt zoals aangegeven in de wiki is het niet moeilijk om te zien hoe je dat voor elkaar krijgt.
( http://wiki.bukkit.org/CraftBukkit_Command_Line_Arguments )

gewoon dus --log-pattern argument meegeven, of gewoon een hele andere log4j xml file als je zelfs wil.

Zal in the end ook beter werken imo dan zulke truukjes :p.

Trouwens, by default logt hij alles al naar server.log. Was dat niet genoeg?
Dankje, dat is inderdaad nog eleganter! En kwam er ook achter dat er een log folder is aangemaakt met aparte logfiles! :F
Pagina: 1