Etikett: systemctl

Automatiskt mounta samba shares

Jag har precis börjat köra Manjaro som daily driver och behövde ett smidigt sätt att mounta upp alla shares på min NAS så att jag kommer åt mina filer på ett enkelt sätt.

Superenkelt 😂

Hittade ett script skrivet av @linux-aarhus, men det passade inte riktigt så jag moddade det. Nu kan man ange flera shares som ska mountas samtidigt med ett och samma script.

Här kan du ladda ner scriptet zippat: mountshares

Det här är den del av scriptet som du själv ska redigera

HOST="192.168.1.123"
SHARES="/home/$USER/shares"
declare -a SHARENAME=("share1" "share2" "share3" "share4")
USERNAME="username"
PASSWD="Correct Horse Battery Staple"
WORKGROUP="workgroup"

Det är hyffsat självförklarande vad du ska skriva in tycker jag 😉
(SHARES behöver du egentligen inte ändra… men du gör som du vill)

Nu är vi halvvägs och kan mounta våra shares och komma åt filer, men det är inte så smidigt. Enklast vore en service som körs när man startar upp datorn… det är också superenkelt 🤓

Ett tips innan du fortsätter är att editera scriptet så att det innehåller ditt username, lösen, shares och ip till servern och testa att köra det, utan och med -u

Du ska se att sharen hamnar i din hemkatalog under katalogen shares.

När du ser att det lirar kan du gå vidare!

Steg 1 är att flytta in scriptet du laddade ner till en speciell mapp.
Skapa katalogen om den inte finns med
mkdir -p /home/username/.local/bin
(byt ut username till ditt egna username)

Kopiera sedan scriptet dit… (kopiera filer får du lösa själv)
sätt scriptet som exekverbart med
chmod +x /home/username/.local/bin/mountshares.sh
(byt ut username till ditt egna username)

Steg två är att skapa en mapp för service-filen
mkdir -p /home/username/.config/systemd/user
(byt ut username till ditt egna username)

Skapa en fil i den mappen:
nano /home/username/.config/systemd/user/mountshares.service
(byt ut username till ditt egna username)

Och skriv in följande i filen, spara sedan:
[Unit]
Description=GIO mount smb shares

[Service]
Type=oneshot
ExecStart=/home/%u/.local/bin/mountshares.sh
ExecStop=/home/%u/.local/bin/mountshares.sh -u
RemainAfterExit=true

[Install]
WantedBy=default.target

Steg tre är att enabla servicen
systemctl –user enable mountshares

Klart!

Du kan kolla status på servicen med
systemctl –user status mountshares

Det som kommer ut ska ha texten enabled mot slutet av den första raden (Loaded:….)

Stoppa och starta servicen gör du som vanligt med services

systemctl –user start mountshares
systemctl –user stop mountshares

Testa att starta om datorn och känn glädjen att ha mountade shares när du loggar in 🥰


Skapa en egen systemd service

Superl?tt, n?r man vet hur. S? h?r g?r man:

Skapa filen /etc/systemd/system/<servicenamn>.service och l?gg in det h?r:

[Unit]
After=mysql.service

[Service]
ExecStart=/usr/local/bin/<script som ska k?ras>

[Install]
WantedBy=default.target

Skapa scriptet i katalogen /usr/local/bin, eller d?r du helre vill ha det. Kom ih?g att ?ndra s?kv?g i servicen om du v?ljer en annan plats. G?r scriptet exekverbart med chmod +x <scriptnamn>

Installera tj?nsten

chmod 664 /etc/systemd/system/<servicenamn.service>
# systemctl daemon-reload
# systemctl <servicenamn>.service

Klart!

systemctl <start|stop> servicenamn.service f?r att starta eller stoppa det.

© 2024 Editio Princeps

Tema av Anders NorenUpp ↑