0acid0
Goto Top

Bash script wird nicht mehr ausgeführt.

Script wird auf Samba Server nicht mehr ausgeführt.

Hallo,

ich habe seit ein paar wochen ein script im Einsatz was seinen Dienst bis gestern auch vernünftig leistete,
nur scheint der Samba das script nicht mehr als solches zu verarbeiten.
Kurze Erläuterung, es liest Dateien die 30 Tage alt sind nimmt die Namen, bringt diese in eine "Normalform"
und sperrt die User dann. Sprich es liest User aus die 30 Tage inaktiv sind und setzt dann einen "locked" flag an meinem ldap.

System: Debian, 2.6.26-2-amd64

Script:

#!/bin/bashdate= $(date +"%Y.%m.%d")path= /var/lib/samba/netlogon/scripts/usersscript= /etc/scripts/user_lockfile= $script/user_filesusers= $script/user_listnolock= $script/user_nolocklog= $script/del.logcd $path find -mtime 30 > $file cat $file | cut -d/ -f2- | cut -d. -f1 > $userfor i in $(cat $users);do y=0 for x in $(cat $nolock);do if [ $x = $i ]; then y=1 fi done; if [ $y = 0 ]; then smbldap-usermod -I $i echo "$date : User $i gesperrt" > $log fidone;rm $filerm $users

Ausgabe wenn script ausgeführt wird:
./test.sh: line 20: 2012.03.21: command not found./test.sh: line 21: /var/lib/samba/netlogon/scripts/users: is a directory./test.sh: line 22: /etc/scripts/user_lock: is a directory./test.sh: line 23: /user_files: No such file or directory./test.sh: line 24: /user_list: No such file or directory./test.sh: line 25: /user_nolock: No such file or directory./test.sh: line 26: /del.log: No such file or directory./test.sh: line 30: $file: ambiguous redirect./test.sh: line 31: $user: ambiguous redirect

Ich habe "chmod +x" auch noch mal neu gesetzt, brachte leider keinen Erfolg. Hat zufällig jmd. eine idee, bin gerade etwas ratlos.
Vielen Dank.

Content-ID: 182340

Url: https://administrator.de/forum/bash-script-wird-nicht-mehr-ausgefuehrt-182340.html

Ausgedruckt am: 22.12.2024 um 20:12 Uhr

64748
64748 21.03.2012 um 13:26:16 Uhr
Goto Top
Hallo,

bei der Zuweisung der Variablen im im ersten Teil des Skripts darf hinter dem "=" Gleichheitszeichen kein Leerzeichen sein.

Beispiel:
falsch
markus@samsung:~/Programmierung/Bash$ date= $(date +"%Y.%m.%d")
bash: 2012.03.21: Kommando nicht gefunden.
aber richtig
markus@samsung:~/Programmierung/Bash$ date=$(date +"%Y.%m.%d")
markus@samsung:~/Programmierung/Bash$ echo $date
2012.03.21

Du solltest herausfinden wieso das Skript verändert wurde und ggf. von wem.

Markus

[edit| chmod 755 nochmal ausführen kann ja nix bringen, das Skript ist ja gelaufen, anderenfalls wäre "permission denied" als Fehlermeldung gekommen.[/edit]
0acid0
0acid0 21.03.2012 um 14:04:32 Uhr
Goto Top
Ach na klar.... das war es auch schon... -.-
Ich hab den Wald vor Bäumen nicht mehr gesehen.

Das einem solche kleinigkeiten manchmal einfach nicht auffallen.

Vielen Dank face-smile