Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

Shortcuts voor terminal commands

Pagina: 1
Acties:

Vraag


  • Psdmd
  • Registratie: september 2014
  • Laatst online: 02-02 00:06
Ik heb een script draaien op een server, waarvan ik meerdere malen per dag de waarden in het config.ini bestand moet aanpassen en vervolgens het script herstarten. Tot vandaag heb ik dat altijd gedaan door alle commando’s manueel in terminal in te geven, maar dat begint toch wat te vervelen. 

Ik vroeg me af of het niet mogelijk is om enkele batch files / shortcuts te maken die de commando’s bevatten? 



De eerste shortcut moet een bestand op mijn server openen dat ik na bewerken kan opslaan:

ssh root@XXX.156.189.54
nano /home/USER/ccxt_notifier/config/config.ini

De tweede shortcut moet volgende 2 commando’s uitvoeren:

systemctl restart ccxt_notifier.service
systemctl status ccxt_notifier.service

Voor het eerste gedeelte heb ik in ~/.bash_profile een nieuw alias toegevoegd: alias test="ssh root@XXX.156.189.54". Dat werkte en vervolgens dacht ik het commando voor die alias aan te passen naar "nano root@XXX.156.189.54:/home/USER/ccxt_notifier/config/config.ini", maar dat werkt jammer genoeg niet.



Ook volgende commando’s werken niet, beiden loggen ze in op de server en wanneer ik die verbinding sluit kom ik terecht in een nieuw lokaal bestand geopend door nano:



ssh root@XXX.156.189.54 ; nano /home/USER/ccxt_notifier/config/config.ini
ssh root@XXX.156.189.54 && nano /home/USER/ccxt_notifier/config/config.ini

Kan iemand me vertellen hoe het wél moet? Bijkomstige vraag: is zoiets ook mogelijk vanaf een telefoon?

Beste antwoord (via Psdmd op 31-01-2019 23:29)


  • TommieW
  • Registratie: december 2010
  • Laatst online: 23:27

TommieW

Numa numa.

Is het niet handiger om automatisch die config aan te passen? Of is dat iets wat menselijk bepaald moet worden? Je kan gewoon via SSH direct een commando uitvoeren door het erachter te zetten:

ssh root@XXX.156.189.54 'vi /home/USER/ccxt_notifier/config/config.ini && systemctl restart ccxt_notifier.service && systemctl status ccxt_notifier.service'


Let hierbij erop dat ik het hele commando in quotes heb gezet. Zo wordt het in je lokale shell als één parameter gezien. Dat is het probleem met de laatste twee commando's. Zoiets zou ook prima moeten kunnen vanaf je telefoon. JuiceSSH is een hele goede Android SSH client (ik denk dat het daarbinnen in een snippet moet kunnen).

TommieW wijzigde deze reactie 31-01-2019 22:21 (4%)

1700X@3,9GHZ - Asus Crosshair VI Hero - 32GB Corsair LPX - GTX 1070Ti
Oneplus 3T

Alle reacties


Acties:
  • Beste antwoord
  • +1Henk 'm!

  • TommieW
  • Registratie: december 2010
  • Laatst online: 23:27

TommieW

Numa numa.

Is het niet handiger om automatisch die config aan te passen? Of is dat iets wat menselijk bepaald moet worden? Je kan gewoon via SSH direct een commando uitvoeren door het erachter te zetten:

ssh root@XXX.156.189.54 'vi /home/USER/ccxt_notifier/config/config.ini && systemctl restart ccxt_notifier.service && systemctl status ccxt_notifier.service'


Let hierbij erop dat ik het hele commando in quotes heb gezet. Zo wordt het in je lokale shell als één parameter gezien. Dat is het probleem met de laatste twee commando's. Zoiets zou ook prima moeten kunnen vanaf je telefoon. JuiceSSH is een hele goede Android SSH client (ik denk dat het daarbinnen in een snippet moet kunnen).

TommieW wijzigde deze reactie 31-01-2019 22:21 (4%)

1700X@3,9GHZ - Asus Crosshair VI Hero - 32GB Corsair LPX - GTX 1070Ti
Oneplus 3T


  • HJTP
  • Registratie: oktober 2011
  • Laatst online: 22-02 13:59
TommieW schreef op donderdag 31 januari 2019 @ 22:18:
Is het niet handiger om automatisch die config aan te passen? Of is dat iets wat menselijk bepaald moet worden? Je kan gewoon via SSH direct een commando uitvoeren door het erachter te zetten:

ssh root@XXX.156.189.54 'vi /home/USER/ccxt_notifier/config/config.ini && systemctl restart ccxt_notifier.service && systemctl status ccxt_notifier.service'


Let hierbij erop dat ik het hele commando in quotes heb gezet. Zo wordt het in je lokale shell als één parameter gezien. Dat is het probleem met de laatste twee commando's. Zoiets zou ook prima moeten kunnen vanaf je telefoon. JuiceSSH is een hele goede Android SSH client (ik denk dat het daarbinnen in een snippet moet kunnen).
Je hebt wel heel subtiel nano door vi vervangen >:)
Vind ik een goede zaak, maar TS kan daar mogelijk niet mee omgaan :)

Asus Sabertooth P67, i7 2600k, Asus GTX 580, Corsair Dominator 8GB, CM HAF922, Samsung 850 EVO 1TB, WD 1TB caviar blue. 2x LG W2453V /e-peen compare mode off.


  • Super_ik
  • Registratie: maart 2001
  • Laatst online: 23:08

Super_ik

haklust!

Waarschijnlijk ga je nu wel -t aan ssh mee moeten geven, anders heb je geen terminal.

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • F_J_K
  • Registratie: juni 2001
  • Niet online

F_J_K

Moderator CSA

Front verplichte underscores

SWS —> NOS, aangezien het meer over de OS commando’s gaat en niets server-specifiek.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Psdmd
  • Registratie: september 2014
  • Laatst online: 02-02 00:06
TommieW schreef op donderdag 31 januari 2019 @ 22:18:
Is het niet handiger om automatisch die config aan te passen?
Het mag zeker allemaal in 1 commando zolang systemctl restart en status gebeuren na het opslaan van config.ini, maar daar zorgt de && operator waarschijnlijk voor?
HJTP schreef op donderdag 31 januari 2019 @ 22:28:
[...]
Je hebt wel heel subtiel nano door vi vervangen >:)
Vind ik een goede zaak, maar TS kan daar mogelijk niet mee omgaan :)
Dat heb je goed geraden :) Met nano ben ik vertrouwd, vi is me onbekend. Ik krijg de config.ini wel te zien, maar kan er niets in aanpassen. Ook krijg ik eerst enkele foutmeldingen:

Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal

Vi vervangen door nano werkt jammer genoeg niet, dan krijg ik volgende foutmelding:

Error opening terminal: unknown.
Super_ik schreef op donderdag 31 januari 2019 @ 22:45:
Waarschijnlijk ga je nu wel -t aan ssh mee moeten geven, anders heb je geen terminal.
Met -t lukt het inderdaad en krijg ik nano geopend _/-\o_

Psdmd wijzigde deze reactie 31-01-2019 23:08 (25%)
Reden: Nieuwe antwoorden tijdens het plaatsen van mijn laatste bericht


  • Hero of Time
  • Registratie: oktober 2004
  • Laatst online: 22:38

Hero of Time

Moderator NOS/CSA

There is only one Legend

Als je weet wat de waarde is en waar die heen moet, is het simpel te doen met sed, die heeft geen terminal nodig.

Wat ook nog kan, als alles makkelijk te automatiseren is, is een script uitvoeren bij inloggen en als die klaar is, je weer wordt afgemeld. Dat kan met ssh_command icm ssh keypair inloggen (public/private key). Maar dat gaat je denk ik nog even te ver.

Voor sed is het zoiets simpels als dit:
sed -i 's/oude waarde/nieuwe waarde/'

Dit doet een in-place vervanging van 'oude waarde' naar 'nieuwe waarde' en stop als het de eerste heeft gedaan. Heb je er meer, dan moet er nog 'g' aan het einde, voor de single quote. Het is ook mogelijk om een vast stukje tekst op te geven dat aan het begin van de regel moet staat om de hele regel te vervangen, ongeacht wat erachter staat, maar die weet ik niet uit m'n hoofd.

Er is iig een hele hoop mogelijk om zaken te automatiseren.

Spekkies | Commandline FTW


  • Psdmd
  • Registratie: september 2014
  • Laatst online: 02-02 00:06
Het script is een tool dat me helpt om cryptocurrencies te traden, ik kan er bijvoorbeeld mijn buy & sell orders op ingeven en dan krijg ik een push melding op m'n telefoon wanneer die gevuld worden. Een beetje zoals Blockfolio doet, maar veel preciezer dan.

Zoals @TommieW al aangaf moeten deze waardes menselijk bepaald worden en kan ik dit niet verder automatiseren. Tenzij met een volledig geautomatiseerde trading bot, maar dat is een ander verhaal en bovendien zijn de meningen daarover erg verdeeld.

Nu inloggen en de config aanpassen een pak minder omslachtig geworden is ben ik al goed geholpen! Voorheen was het steeds commando's kopiëren en plakken uit een tekstbestand of in terminal pijltje omhoog duwen om het juiste commando te zoeken 8)7

Psdmd wijzigde deze reactie 01-02-2019 16:16 (19%)


  • Hero of Time
  • Registratie: oktober 2004
  • Laatst online: 22:38

Hero of Time

Moderator NOS/CSA

There is only one Legend

Ik doelde meer dat je een script aanroept met een parameter (nieuwe waarde) die dan alles voor je doet. Dus inloggen op de server, ini aanpast en service herstart. Nu moet je alsnog wat handmatig doen (editen en opslaan).

Spekkies | Commandline FTW


  • Psdmd
  • Registratie: september 2014
  • Laatst online: 02-02 00:06
Ik denk niet dat ik je helemaal begrijp, maar ik ben dan ook een hele grote noob in dit soort dingen :) Als het natuurlijk nog korter kan hoor ik het graag!

Momenteel open ik dus terminal en geef daar mijn shortcut in, in dit geval trx



Dat brengt me meteen in de config.ini waar ik de nieuwe waarden ingeef en afsluit met control+X, gevolgd door Y en enter



Daarna kom ik bij de status terecht en als ik daar geen foutmeldingen zie kan ik met een gerust hart het venster sluiten



Bedoel je met een script bijvoorbeeld een bestandje op m'n desktop waar ik de nieuwe waarden kan invullen zonder dat ik nog in terminal moet zijn?

  • Hero of Time
  • Registratie: oktober 2004
  • Laatst online: 22:38

Hero of Time

Moderator NOS/CSA

There is only one Legend

Eerder dat je een terminal opent, 'trx <nieuwe waarde>' intypt en de rest voor je wordt gedaan. Dus je hoeft niet met de hand het bestand aan te passen en op te slaan. Dat wordt door 'sed' dan gedaan.

Het is overigens zeer onverstandig om je key en secret zo in een plaatje te laten staan. Nu kan iedereen je wallet in, of waar het dan ook toegang toe geeft.

Spekkies | Commandline FTW


  • Psdmd
  • Registratie: september 2014
  • Laatst online: 02-02 00:06
Met die informatie kunnen ze me hoogstens een push melding sturen, benieuwd of iemand die moeite doet :+

  • Hero of Time
  • Registratie: oktober 2004
  • Laatst online: 22:38

Hero of Time

Moderator NOS/CSA

There is only one Legend

Toch, voor de zekerheid... maar dat zal waarschijnlijk al te laat zijn. Dingen gaan snel op 't web.

Spekkies | Commandline FTW

Pagina: 1


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T (6GB ram) FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True