Brauche Hilfe bei Skript-Erstellung

  • Hi zusammen,

    mich plagt leider seit langem das Problem, dass mein Papierkorb sich selber zerstört

    Dann muss ich die folgenden commands durchlaufen lassen und danach funktioniert wieder alles - ca. 2-3 Tage.

    Und dann gehts wieder von neuem los.


    Bin auch nicht alleine (siehe LINK)


    Daher die Frage - wie bekomme ich die folgenden commands in ein Skript, was ich dann bei jedem boot automatisch ausführen lassen kann?

    Vielen Dank und schönes Wochenende

    Code
    1. sudo rm -rf ~/.Trash
    2. sudo rm -rf /Volumes/*/.Trashes
    3. mkdir ~/.Trash
    4. sudo chown $UID ~/.Trash
    5. chmod u+rwx ~/.Trash

    1337-Machine: iMacPro1,1 | i7-6700; Asus Hero VIII, Asus RogStrix Vega 56, 16GB Corsair Ballistix @ Open-Core-with-text-Small.png

    Details zu meiner lauffähigen Konfiguration - inkl. meiner aktuellen EFI - findet ihr >>HIER<<


    Du weißt nicht, wie du an deine PCI-Root-Pfade oder UUIDs kommst? Schau doch mal >>HIER<<

    Du möchtest die Bootpicker Einträge von OpenCore ändern? Schau doch mal >>HIER<<

    Du willst die Scan Policy von OpenCore auf deine Bedürfnisse anpassen? Schau doch mal >>HIER<<

  • iMacPro1,1: Fractal Define R6 - ASUS SAGE X299 - i9 10900X 3,7Ghz - 32 GB - Sapphire RX 5700 XT Pulse 8GB - NVMe SSD 960 EVO 1 TB - BCM943602CS Combo Karte - Sonnet Solo 10G AQC-107 - Titan Ridge TB3 - macOS 11.7 - OpenCore 084

    Proxmox: G5-Casemod - GA Z270-HD3P - i7 7700k 4,2Ghz - 16 GB - iGPU - GT 730 - NVMe SSD 1TB - VM1: Monterey - VM2: Windows 10 - VM3: Mannaro VM4: Unraid

    Mac Mini Studio: 32 GB - 512 GB SSD - CalDigit TS3 Plus Station - Terramaster D2 TB3 Raid

  • Ich bin jetzt nicht der große Scriptersteller, aber vielleicht klappt es mit dem angefügten.

    Dateien

    HP Elite X2 G2, 12'', Intel Core i5-7300U, 16 GB RAM, Intel HD Graphics 620, 4 TB SSD, macOS Ventura

    ---

    HP Compaq 8300 Elite, Intel Core i5-3470, 4 x 3,20 GHz, 8 GB RAM, Ivy Bridge, Nvidia Geforce GT 710 (Intel HD Graphics 2500), macOS Big Sur

  • sunraid - danke, aber das übersteigt meine Fähigkeiten... aber vielleicht mit Hilfe von iPhoneTruth :)


    iPhoneTruth - leider nein - er wirft folgenden Fehler:

    Code
    1. error "„Finder“ hat einen Fehler erhalten: sudo: no tty present and no askpass program specified" number 1

    Ich glaube der kennt kein Sudo oder? In dem Link von Sunraid steht sowas wie:

    Code
    1. do shell script "command" user name "me" password "mypassword" with administrator privileges


    Also muss doch aus deinem

    Code
    1. tell application "Finder"
    2. activate
    3. do shell script "sudo rm -rf ~/.Trash"


    ein

    Code
    1. tell application "Finder"
    2. activate
    3. do shell script "rm -rf ~/.Trash" user name "me" password "mypassword" with administrator privileges

    werden, oder? :/



    Update: Ich habe das Script mal wie folgt angepasst.

    Code
    1. tell application "Finder"
    2. activate
    3. do shell script "rm -rf ~/.Trash" user name "myUsername" password "myPassword" with administrator privileges
    4. do shell script "rm -rf /Volumes/*/.Trashes" user name "myUsername" password "myPassword" with administrator privileges
    5. do shell script "mkdir ~/.Trash" user name "myUsername" password "myPassword" with administrator privileges
    6. do shell script "chown $UID ~/.Trash" user name "myUsername" password "myPassword" with administrator privileges
    7. do shell script "chmod u+rwx ~/.Trash" user name "myUsername" password "myPassword" with administrator privileges
    8. end tell


    Das Ergebnis lt. ScriptEditor ist jetzt --> "" (was auch immer das bedeutet) :)


    Aber es scheint zu funktionieren... werde noch was testen und gucken, dass ich es in den Autostart bekomme ... Danke nochmal!!

    1337-Machine: iMacPro1,1 | i7-6700; Asus Hero VIII, Asus RogStrix Vega 56, 16GB Corsair Ballistix @ Open-Core-with-text-Small.png

    Details zu meiner lauffähigen Konfiguration - inkl. meiner aktuellen EFI - findet ihr >>HIER<<


    Du weißt nicht, wie du an deine PCI-Root-Pfade oder UUIDs kommst? Schau doch mal >>HIER<<

    Du möchtest die Bootpicker Einträge von OpenCore ändern? Schau doch mal >>HIER<<

    Du willst die Scan Policy von OpenCore auf deine Bedürfnisse anpassen? Schau doch mal >>HIER<<

    2 Mal editiert, zuletzt von Maddeen ()

  • Sudo weglassen


    tell application "Finder"

    activate

    do shell script "rm -rf ~/.Trash" with administrator privileges


    end tell


    Wenn du das so vorgibst musst du nicht dein Passwort in das Script einfügen. Es erscheint eine Dialogbox mit der PWabfrage...


    Bin gerade überfragt, ob du bei jedem do shell "with administrator privileges" anhängen mußt. Einfach mal probieren


    EDIT: Wenn ich das richtig verstehen,


    "...Once a script is correctly authenticated, it will not ask for authentication again for five minutes...."


    reicht es "with administrator privileges" einmal beim ersten do shell anzuhängen!

    iMacPro1,1: Fractal Define R6 - ASUS SAGE X299 - i9 10900X 3,7Ghz - 32 GB - Sapphire RX 5700 XT Pulse 8GB - NVMe SSD 960 EVO 1 TB - BCM943602CS Combo Karte - Sonnet Solo 10G AQC-107 - Titan Ridge TB3 - macOS 11.7 - OpenCore 084

    Proxmox: G5-Casemod - GA Z270-HD3P - i7 7700k 4,2Ghz - 16 GB - iGPU - GT 730 - NVMe SSD 1TB - VM1: Monterey - VM2: Windows 10 - VM3: Mannaro VM4: Unraid

    Mac Mini Studio: 32 GB - 512 GB SSD - CalDigit TS3 Plus Station - Terramaster D2 TB3 Raid

  • Hab dir mal ne App gebastelt, die Du nur in Startobjekte legen musst. Du musst aber noch im Bundle selber in der Datei script


    Shell-Script
    1. #!/bin/bash
    2. password="DEIN_ROOT_PASSWORT"
    3. echo "$password" | sudo -S rm -rf ~/.Trash
    4. echo "$password" | sudo -S rm -rf /Volumes/*/.Trashes
    5. mkdir ~/.Trash
    6. echo "$password" | sudo -S chown $UID ~/.Trash
    7. chmod u+rwx ~/.Trash

    dein Rootpasswort hinterlegen. Dann macht er alles bei einem Neustart automatisch. Ich kann es dir auch so machen, dass er dich jedesmal nach dem Passwort fragt und es nicht fest hinterlegt ist.


    EDIT:

    War noch ein Fehler drin. Habs neu hochgeladen.

    Dateien

  • Hi Sascha,

    kannst du mal kurz erläutern, wie man aus dem Shell-Script eine APP macht!

    Würde mich echt interessieren, dann muß man vorhandene Script nicht immer mit AppleScript aufpimpen...


    Gruß und Danke!

    Joe

    iMacPro1,1: Fractal Define R6 - ASUS SAGE X299 - i9 10900X 3,7Ghz - 32 GB - Sapphire RX 5700 XT Pulse 8GB - NVMe SSD 960 EVO 1 TB - BCM943602CS Combo Karte - Sonnet Solo 10G AQC-107 - Titan Ridge TB3 - macOS 11.7 - OpenCore 084

    Proxmox: G5-Casemod - GA Z270-HD3P - i7 7700k 4,2Ghz - 16 GB - iGPU - GT 730 - NVMe SSD 1TB - VM1: Monterey - VM2: Windows 10 - VM3: Mannaro VM4: Unraid

    Mac Mini Studio: 32 GB - 512 GB SSD - CalDigit TS3 Plus Station - Terramaster D2 TB3 Raid

  • Hab das Script oben geändert. Da war noch ein Fehler drin. Bitte nochmal neu runterladen.


    sunraid

    Seit zig Jahren mein guter Freund:

    https://sveinbjorn.org/platypus

  • Sascha_77 Cool!!! Wenn du noch mehr solcher Schmankerl auf Lager hast, die einem das Leben, eh proggen vereinfachen, immer her damit!

    iMacPro1,1: Fractal Define R6 - ASUS SAGE X299 - i9 10900X 3,7Ghz - 32 GB - Sapphire RX 5700 XT Pulse 8GB - NVMe SSD 960 EVO 1 TB - BCM943602CS Combo Karte - Sonnet Solo 10G AQC-107 - Titan Ridge TB3 - macOS 11.7 - OpenCore 084

    Proxmox: G5-Casemod - GA Z270-HD3P - i7 7700k 4,2Ghz - 16 GB - iGPU - GT 730 - NVMe SSD 1TB - VM1: Monterey - VM2: Windows 10 - VM3: Mannaro VM4: Unraid

    Mac Mini Studio: 32 GB - 512 GB SSD - CalDigit TS3 Plus Station - Terramaster D2 TB3 Raid

  • Hat zwar nix mit proggen als solches zu tun ....


    https://www.pointworks.de/software/custommenu-3


    Lässt ein Custom Menu (und damit meine ich auch ein echtes Custom Menu) direkt am Mauszeiger aufspringen. Es gibt zwar vom System her das Menu mit der rechten Maustaste aber das kann man nicht wirklich customizen. Custommenu3 ist das einzige Tool dieser Art was auf aktuellen OS läuft. Es gibst zwar auch 2 oder 3 ältere Tools die sowas machen aber keines ist noch lauffähig, da schon sehr alt und nicht mehr weiterentwickelt.

    Ich rufe das Menu z.b. mit der mittleren Maustaste auf. Schneller sind nur Keyboard Shortcuts.

  • Sascha_77 - das ist ja mal geil!! Super - dank dir.

    Bin jetzt einfach hingegangen und habe die Datei script mit sublime editiert und gespeichert - scheint zu laufen.

    Ich werde die App jetzt mal in den Autostart verfrachten und gucken, ob das Problem der Vergangenheit angehört :)

    1337-Machine: iMacPro1,1 | i7-6700; Asus Hero VIII, Asus RogStrix Vega 56, 16GB Corsair Ballistix @ Open-Core-with-text-Small.png

    Details zu meiner lauffähigen Konfiguration - inkl. meiner aktuellen EFI - findet ihr >>HIER<<


    Du weißt nicht, wie du an deine PCI-Root-Pfade oder UUIDs kommst? Schau doch mal >>HIER<<

    Du möchtest die Bootpicker Einträge von OpenCore ändern? Schau doch mal >>HIER<<

    Du willst die Scan Policy von OpenCore auf deine Bedürfnisse anpassen? Schau doch mal >>HIER<<

  • Darf ich mich mal bitte hier kurz dran hängen und um einen Tipp bzgl. eines Applescript bitten? :verneigen:

    Ich möchte gerne für die interne Projektabrechnung mit dem Kontextmenü im Finder Textfiles in einem vorher ausgewählten Verzeichnis anlegen. Das klappt ganz rudimentär mit diesem Script:

    Code
    1. tell application "Finder"
    2. set thisFolder to the target of the front window as alias
    3. make new file at thisFolder with properties {name:"YYYY.MM.DD - HH.MM.txt", file type:"TEXT", creator type:"ttxt"}
    4. end tell

    "YYYY.MM.DD - HH.MM" steht dann für 2019.07.28 - 21.05.txt. Das mit dem Datum im Namen kriege ich schon mal nicht hin. :wallbash:

    Ich schaffe es gerade, einen Namen ("test.txt") anzugeben und das klappt auch und das File wird auch ins gewählte Verzeichnis geschrieben.


    ABER! Das hat 0 Byte und mir wäre lieber, es hätte "zur Sicherheit" ein paar Byte "Inhalt". Der Text in der Datei und der Name können identisch sein – also steht dann in der Datei der Text "2019.07.28 - 21.05.txt". Mit dem Schreiben in die Datei habe ich schon alles mögliche probiert und bin gescheitert.:facepalm:


    Über den selben Script sollte noch ein weiteres File im Verzeichnis angelegt werden, das hat den Namenskürzel des Bearbeiters (und konsequenterweise steht der auch als Text in der Datei drinnen). Dieser Name wird einmal im Script definiert und ändert sich nicht mehr.


    Hintergrund ist der, dass man im Arbeitsverzeichnis später genau sehen kann, wer wann welchen Job übergeben, bzw übernommen hat. Klingt ungewöhnlich, klappt aber schon seit Jahren bei uns super. Ist allerdings eine Arbeit für Blöde, die Dateien jedes mal händisch anzulegen und die Mitarbeiter sind ganz großartig darin, sich diese Mühe zu sparen oder vergessen es einfach. Deshalb möchte ich das gerne als Script haben, den ich später als Dienste im Kontextmenü habe.


    Sascha_77 (oder andere Cracks hier) – ich wäre euch zu ewigem Dank verpflichtet!!!!!

  • Hier bitte. Legt die Sachen wie gewünscht in dem markierten Ordner an. Datum musst Du dir dann noch nach Deiner Syntax zurechtbiegen im Workflow.

    Dateien

    • Workflow.zip

      (45,69 kB, 96 Mal heruntergeladen, zuletzt: )
  • Kein Ding. Sieht am Ende so aus:

  • Hammer! Nur eine Frage noch: Bei der Ausführung ertönt immer ein Warnton, ist das normal? Mit dem Datum muss ich noch mal schauen. Auf jeden Fall ist das eine riesige Hilfe.


    Hintergrund: Anhand der Files in den Arbeitsverzeichnissen räumt Hazel im Hintergrund auf, bzw. liefert Input für die Buchhaltung. Das klappt aber nur, wenn die entsprechenden Namen der Files zu 100% der Vorgabe entsprechen. Wenn z.B. einer versehentlich das Datum falsch formatiert, klappt es nicht mehr. Was müsste ich beispielsweise ändern, damit das Datum unabhängig von den Sprach- und Systemeinstellungen immer in "fest gegossener Form" ausgegeben wird?


    Edit: Erledigt, habe jetzt geändert in Datum=$(date +"%Y.%m.%d - %H.%M")

    Passt!!!!


    Shell-Scripts sind ja eine richtig geile Sache!

    2 Mal editiert, zuletzt von ResEdit () aus folgendem Grund: Epochal neue Erkenntnisse!

  • Shell-Scripts sind ja eine richtig geile Sache!

    Kann man sagen. Alles was ich mir an Scripten so baue ist ausschließlich in Bash. Selbst der Kern des Kext Updaters ist reines Bash.

  • Bin wirklich ganz hin und weg. Habe mich Jahrzehnte vor dieser Sache gedrückt. Werde das ab jetzt definitiv intensiver angehen, das Thema.


    Übrigens ist die Warnmeldung weg, nachdem ich im Workflow die Kriterien definiert habe (oberhalb des Scripts im Screenshot).


    Nochmals Tausend Dank!

  • Community Bot

    Hat das Label Erledigt hinzugefügt