Auteur Topic: USB drive uitwerpen via bash script  (gelezen 1034 keer)

Offline doglover

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 2
  • Berichten: 28
USB drive uitwerpen via bash script
« Gepost op: 28 augustus 2024, 08:18:09 »
Ik moet regelmatig een aantal bestanden kopieren naar een USB drive (stick).
Heb hiervoor een scriptje geschreven. 
Stick insteken.  Scriptje starten.
Als ie klaar is USB stickje verwijderen en klaar.

Maar ik krijg steeds de melding, dat de stick onveilig verwijderd is.

In het scriptje staat het volgende commando:
sync
/usr/syno/bin/synousbdisk -umount $MAP

Hierbij is $MAP:  /volumeUSB1/usbshare

(Er is altijd maar één USB stick ingestoken)

De uitvoer van het script meld wel dat de stick is uitgeworpen is en dat ik de stick kan verwijderen.
Als ik nochtans ga kijken via file manager zie ik dat de stick nog steeds gemount is.

Dus:  Hoe kan ik de stick Uitwerpen via BASH?

Info:
DSM 7.2.1-69057 Update 5
DS423+
  • Mijn Synology: DS423+
  • HDD's: 3X ST8000VN004

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2667
  • Berichten: 16.537
Re: USB drive uitwerpen via bash script
« Reactie #1 Gepost op: 29 augustus 2024, 10:18:51 »
Ik heb geen idee.

Ik heb het volgende script wel een gebruikt om een uitgeworpen USB weer te mounten zonder met de stekker aan de gang te moeten:

#!/bin/bash

# bron: https://community.synology.com/enu/forum/1/post/132055

for i in /sys/bus/pci/drivers/[uoex]hci_hcd/*:*; do
[ -e "$i" ] || continue
echo "${i##*/}" > "${i%/*}/unbind"
echo "${i##*/}" > "${i%/*}/bind"
done

Die probeert volgens mij steeds eerste alle drivers te unmounten en dan weer te mounten.  Dus als je de regel met 'bind' weglaat, krijg je misschien alles gemount. (Birdy: idd unmount) Ik heb het niet getest.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline Birdy

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1380
  • -Ontvangen: 7963
  • Berichten: 43.941
  • Alleen een PB sturen als hier om gevraag wordt.
    • Truebase
Re: USB drive uitwerpen via bash script
« Reactie #2 Gepost op: 29 augustus 2024, 10:25:56 »
Citaat
krijg je misschien alles gemount.
Denk unmount. ;)


CS406      DSM 2.0-0731    DS508      DSM 4.0-2265      DS411+II  DSM 6.2.4-25556-7   DS115J    DSM 7.1.1-42962-5   DS918+    DSM 6.2.4-25556-7
DS107+     DSM 3.1-1639    DS411slim  DSM 6.2.4-25556   DS213J    DSM 6.2.4-25556-7   DS1515+   DSM 6.2.4-25556-7   DS220+    DSM 7.2.2-72806-1
DS107+     DSM 3.1-1639    DS111      DSM 5.2-5967-9    DS413J    DSM 6.2.3-25426-2   DS716+II  DSM 7.2.2-72806     RT2600ac  SRM 1.2.5-8227-11
BeeDrive   1TB             BeeServer  BSM 1.1-65374                                                                 MR2200ac  SRM 1.2.5-8227-11

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2667
  • Berichten: 16.537
Re: USB drive uitwerpen via bash script
« Reactie #3 Gepost op: 29 augustus 2024, 10:32:28 »
Het kan wel zo zijn dat op deze manier nog aanwezige buffers niet naar de USB geschreven worden.  Dus ik zou wel beginnen met het nu gebruikte script met het 'unmount' commando.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline Birdy

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1380
  • -Ontvangen: 7963
  • Berichten: 43.941
  • Alleen een PB sturen als hier om gevraag wordt.
    • Truebase
Re: USB drive uitwerpen via bash script
« Reactie #4 Gepost op: 29 augustus 2024, 10:55:15 »
Je begrijpt me niet, het gaat niet om het commando maar, hoe je het benoemd.

Citaat
Dus als je de regel met 'bind' weglaat, krijg je misschien alles gemount.
Wat ik bedoel met "unmount" (geen commando) het tegenovergestelde van "gemount" dat was ook geen commando

Dus m.a.w., met het commando echo "${i##*/}" > "${i%/*}/unbind" (die dan overblijft) wordt de  USB losgekoppeld , misschien dat het zo duidelijker is.

 


CS406      DSM 2.0-0731    DS508      DSM 4.0-2265      DS411+II  DSM 6.2.4-25556-7   DS115J    DSM 7.1.1-42962-5   DS918+    DSM 6.2.4-25556-7
DS107+     DSM 3.1-1639    DS411slim  DSM 6.2.4-25556   DS213J    DSM 6.2.4-25556-7   DS1515+   DSM 6.2.4-25556-7   DS220+    DSM 7.2.2-72806-1
DS107+     DSM 3.1-1639    DS111      DSM 5.2-5967-9    DS413J    DSM 6.2.3-25426-2   DS716+II  DSM 7.2.2-72806     RT2600ac  SRM 1.2.5-8227-11
BeeDrive   1TB             BeeServer  BSM 1.1-65374                                                                 MR2200ac  SRM 1.2.5-8227-11

Offline doglover

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 2
  • Berichten: 28
Re: USB drive uitwerpen via bash script
« Reactie #5 Gepost op: 29 augustus 2024, 13:52:25 »
Volgende script gebruikt:

#!/bin/bash

# bron: https://community.synology.com/enu/forum/1/post/132055

for i in /sys/bus/pci/drivers/[uoex]hci_hcd/*:*; do
[ -e "$i" ] || continue
echo "${i##*/}" > "${i%/*}/unbind"
#echo "${i##*/}" > "${i%/*}/bind"
done

Resultaat:
line 7: /sys/bus/pci/drivers/xhci_hcd/unbind: Permission denied
En dus de stick niet unmounted.
  • Mijn Synology: DS423+
  • HDD's: 3X ST8000VN004

Offline Birdy

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1380
  • -Ontvangen: 7963
  • Berichten: 43.941
  • Alleen een PB sturen als hier om gevraag wordt.
    • Truebase
Re: USB drive uitwerpen via bash script
« Reactie #6 Gepost op: 29 augustus 2024, 14:01:15 »
Nee, omdat je geen permissie hebt.....
Probeer sudo script...


CS406      DSM 2.0-0731    DS508      DSM 4.0-2265      DS411+II  DSM 6.2.4-25556-7   DS115J    DSM 7.1.1-42962-5   DS918+    DSM 6.2.4-25556-7
DS107+     DSM 3.1-1639    DS411slim  DSM 6.2.4-25556   DS213J    DSM 6.2.4-25556-7   DS1515+   DSM 6.2.4-25556-7   DS220+    DSM 7.2.2-72806-1
DS107+     DSM 3.1-1639    DS111      DSM 5.2-5967-9    DS413J    DSM 6.2.3-25426-2   DS716+II  DSM 7.2.2-72806     RT2600ac  SRM 1.2.5-8227-11
BeeDrive   1TB             BeeServer  BSM 1.1-65374                                                                 MR2200ac  SRM 1.2.5-8227-11

Offline doglover

  • Bedankjes
  • -Gegeven: 0
  • -Ontvangen: 2
  • Berichten: 28
Re: USB drive uitwerpen via bash script
« Reactie #7 Gepost op: 02 september 2024, 08:59:22 »
Naar aanleiding van deze opmerking viel mijne frank (The penny dropped).
Het antwoord is het script runnen als root (of superuser)

Het script dat ik nu gebruik is:

Answer=$(df -h | grep "USB")
MAP=${Answer#*/vol}
MAP="/vol"$MAP
.....
#stuff wat het script moet doen.
......
echo Unmounting
sync
umount -l $MAP
echo
#Controle of de unmount geslaagd is
df -h

  • Mijn Synology: DS423+
  • HDD's: 3X ST8000VN004


 

Taakplanner extern script

Gestart door GiellexeBoard Synology DSM algemeen

Reacties: 1
Gelezen: 662
Laatste bericht 09 oktober 2020, 15:08:49
door Briolet
Meerdere Drive's mogelijk ?

Gestart door dirklammersBoard Cloud Station & Drive

Reacties: 1
Gelezen: 431
Laatste bericht 16 januari 2021, 16:58:13
door Briolet
VERPLAATST: [Drive Server] My Drive verwijderen uit 'Team Folder'

Gestart door BirdyBoard Officiële Packages

Reacties: 0
Gelezen: 585
Laatste bericht 13 mei 2021, 14:07:23
door Birdy
Script om automatisch te kopieren binnen dezelfde volume

Gestart door benito2313Board Data replicator & overige backupsoftware

Reacties: 4
Gelezen: 4111
Laatste bericht 06 maart 2013, 19:59:24
door Arjuhn
Backup maken - Synology - Hyper Backup - Amazon Drive

Gestart door kriskenBoard Data replicator & overige backupsoftware

Reacties: 3
Gelezen: 2767
Laatste bericht 27 december 2016, 13:23:18
door Stef012