Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: bashscript  (gelezen 241 keer)

Offline kfboerne

  • Lid
  • Steunpunt: Nee
bashscript
« Gepost op: 2015/05/06, 19:53:57 »
os = Xubuntu 14.04

Ik wil graag een aantal acties door de pc na het booten automatisch laten uitvoeren en kwam terecht bij bashscripting. Aangezien dit voor mij volkomen nieuw is en ik bepaald geen beta-hoofd ben, loop ik na een middagje studeren toch tegen wat vragen aan en hoop dat die hier mogelijk beantwoord zouden kunnen worden.

De acties die ik wil laten uitvoeren zijn de volgende in deze volgorde :

1) een verbinding met mijn VPN-provider maken via OpenVPN. Dit doe ik nu steeds handmatig : network-manager > VPN-connections > klikken op betreffende VPN-verbinding

2) alle updates binnenhalen en verwerken/installeren. Ik heb daar het volgende script voor in elkaar weten te draaien (en zowaar het werkt) :

#!/bin/bash

cd /etc

## Xubuntu Update
if [ -d /etc/apt ]
then
## Run the update command
sudo apt-get update && sudo apt-get dist-upgrade -y

fi

Alleen wordt er bij het uitvoeren van dit script steeds om mijn password gevraagd en ook dat zag ik graag geautomatiseerd via dit script (tenzij dat niet veilig is natuurlijk. Veiligheid gaat boven alles voor mij). Is dat mogelijk en zo ja kan iemand mij  het precieze commando geven en waar ik dit in het script moet plaatsen.
Verder moet het script dus bij het booten van de pc automatisch worden uitgevoerd, alleen weet ik niet hoe dit voor elkaar te krijgen. Ik geloof dat je een autostart-file moet maken??

3) Ik wil ook nog via dit/een script Firefox en Thunderbird automatisch laten opstarten, echter NADAT de acties onder 1) en 2) zijn uitgevoerd


Ik hoop dat ik het een beetje duidelijk heb weten uit te leggen. Ik weet ook niet of alle acties in een en hetzelfde script kunnen worden opgenomen of dat ik aparte scripts moet maken. Nogmaals, ik ben een puur alpha-hoofd ( =D) dus ik vind dat ik voor mijn doen al redelijk ver ben gekomen ;). Simpele uitleg wordt erg op prijs gesteld, hi,hi. Alvast bedankt!
(O ja, zoals ik reeds schreef, gaat veiligheid voorop. Dus wanneer een script onveilig zou zijn, dan zie ik er vanaf. Maar misschien ben ik nu een tikkeltje paranoide :o)

« Laatst bewerkt op: 2015/05/07, 10:45:53 door kfboerne »
Een boek doet het altijd...

Offline kfboerne

  • Lid
  • Steunpunt: Nee
Re: bashscript
« Reactie #1 Gepost op: 2015/05/07, 10:28:15 »
Anybody?
Een boek doet het altijd...

Offline Bloom

  • Lid
  • Steunpunt: Ja
Re: bashscript
« Reactie #2 Gepost op: 2015/05/07, 10:41:17 »
1. Zelf gebruik ik geen vpn, maar het zou zoiets moeten zijn (niet getest!):
#! /bin/bash
REQUIRED_CONNECTION_NAME="<naam-van-de-netwerkverbinding>"
VPN_CONNECTION_NAME="<naam-van-de-vpn-verbinding>"
activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

2. Het is overbodig te testen op de aanwezigheid van en inhoud van /etc/apt, dat is altijd aanwezig op xUbuntu en eender welk van Debian afgeleid Linux-systeem. Die hele if-then-constructie kan dus weg:
sudo apt-get update && sudo apt-get -y dist-upgrade
Zelf doe ik geen dist-upgrade maar alleen upgrade. Waarom? dist-upgrade kan volautomatisch pakketten verwijderen als hij conflicten tegenkomt en upgrade doet dat niet. Dat houdt dus een risico in. Het kan heel lang goed gaan, maar vroeg of laat gaat het dus fout. Als je upgrade gebruikt, doe dan één keer per maand handmatig dist-upgrade.

Zodra je sudo gebruikt, wordt een wachtwoord gevraagd. Ja, het is mogelijk om dat te omzeilen. Maar vanwege de veiligheid is het beter dat niet te doen. Zo zorg je ervoor dat voor elke actie waarbij aan systeembeheer gedaan wordt, effectief een wachtwoord gevraagd wordt. En dus niet (zoals bij Windows) dat allerlei van het internet gehaalde software kan doen wat het maar wil.

3. Programma's zoals thunderbird en firefox automatisch starten is geen enkel probleem. Dat doe je zo:
thunderbird &
firefox &
Die '&' erachter zorgt ervoor dat het programma als een aparte taak gestart wordt, die ook blijft draaien nadat de terminalsessie afgesloten werd. Zonder die '&' zou het eerste programma bovendien het hele script ophouden totdat het afgesloten wordt en het tweede programma zou pas dan gestart raken.

Offline kfboerne

  • Lid
  • Steunpunt: Nee
Re: bashscript
« Reactie #3 Gepost op: 2015/05/07, 18:06:49 »
Bloom hartelijk bedankt voor de heldere uiteenzetting. Leerzaam! Ik ga ermee aan de slag...
Een boek doet het altijd...

Offline MauRice2

  • Lid
  • Steunpunt: Nee
Re: bashscript
« Reactie #4 Gepost op: 2015/05/07, 20:35:59 »
Een andere oplossing om diverse progjes te laten starten bij inloggen ....
Is deze toe te voegen onder 'Startup Application'.
Het mooie hiervan is dat je op een eenvoudige manier deze aan en uit kan vinken.
MvG,
MauRice
Registered Linux user: 473556

Offline kfboerne

  • Lid
  • Steunpunt: Nee
Re: bashscript
« Reactie #5 Gepost op: 2015/05/08, 16:23:00 »
Ik heb inmiddels het script herschreven nav Bloom's tips en zowaar het werkt =D

Toch is er nog wat onduidelijkheid voor mij omtrent 'upgrade vs dist-upgrade'. Wanneer ik upgrade gebruik, dan krijg ik toch wel hopelijk alle veiligheidsupdates binnen?  Wanneer ik 1x per maand dist-upgrade doe, brengt dat dan geen risico met zich mee? Dan kan het toch ook een keer mislopen of niet? En met 'foutlopen' bedoel je dat m'n systeem naar z'n grootje is en dat ik alles opnieuw moet installeren?
Een boek doet het altijd...

Offline Bloom

  • Lid
  • Steunpunt: Ja
Re: bashscript
« Reactie #6 Gepost op: 2015/05/08, 18:33:15 »
Apt-get upgrade is bedoeld voor veiligheidsupdates en eigenlijk alle updates waarvoor geen conflicten mogelijk zijn.
Wat je bijvoorbeeld niet zult krijgen zijn nieuwe versies van schermdrivers of van kernels.

Met apt-get dist-upgrade wordt alles bijgewerkt zonder uitzondering en dat kan aanleiding geven tot conflicten bij afhankelijkheden tussen programma's en bibliotheekbestanden. Als je dan een '-y' optie gebruikt hebt, zal hij zelf proberen die conflicten op te lossen. Ook als hij bijvoorbeeld daarvoor een stuk of zelfs je volledige desktop of andere applicaties moet deïnstalleren (bijvoorbeeld).
Een dist-upgrade doe ik dus altijd manueel en nooit met '-y'.

Offline kfboerne

  • Lid
  • Steunpunt: Nee
Re: bashscript
« Reactie #7 Gepost op: 2015/05/08, 19:25:54 »
Er gaat een wereld voor me open ;)

Ik dacht altijd dat je over de nieuwste kernels moest beschikken, maar dat is dus niet waar begrijp ik?  De '-y' optie staat voor Yes gok ik? Wanneer je de dist-upgrade zonder -y doet, dan kun je zien wat het systeem 'van plan is' voor wijzigingen door te voeren en daar wel of niet mee akkoord gaan?

Wanneer ik een software-update via de GUI ('Software Updater') doe, is dat dan ook een 'upgrade' en niet een 'dist-upgrade'?

(Sorry voor de vele vragen, maar dit is nieuw voor mij. Echter wel belangrijk om te weten hoe de vork in de steel zit).
Een boek doet het altijd...

Offline Bloom

  • Lid
  • Steunpunt: Ja
Re: bashscript
« Reactie #8 Gepost op: 2015/05/08, 20:05:56 »
Door bij een dist-upgrade de optie '-y' niet te gebruiken, krijg je inderdaad de gelegenheid NEE te zeggen als hij iets wil doen waar je het niet mee eens bent, of hem op te dragen een alternatieve oplossing te zoeken en voor te dragen.

De software-update via GUI verloopt normaal als een normale upgrade, dus geen dist-upgrade, al kun je dat meestal bij de opties wel instellen denk ik. Zelf gebruik ik geen GUI-updatebeheer, ik werk zelf altijd via de terminal. Véél sneller!

Offline kfboerne

  • Lid
  • Steunpunt: Nee
Re: bashscript
« Reactie #9 Gepost op: 2015/05/10, 12:42:49 »
Bloom wederom bedankt voor de uitleg!

Langzaam maar zeker begin ik de terminal steeds geweldiger te vinden. En inderdaad wat is die ongelooflijk snel!
Een boek doet het altijd...