DSM 6.x und darunter Durch Aufgabenplaner gestartetes Script versaut die Umlaute

Alle DSM Version von DSM 6.x und älter
Status
Für weitere Antworten geschlossen.

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.555
Punkte für Reaktionen
1.394
Punkte
234
Hallo,

ich habe ein Problem mit Umlauten, welches nur auftritt, wenn ich das Script über den Aufgabenplaner ausführen lasse.

Im Script werden Dateien aus einem Quellverzeichnis gezippt (7z) und das Archiv in ein anderes Verzeichnis abgelegt.
So sieht das Script aus:
Rich (BBCode):
7z a /volume1/backup/archiv.7z /volume1/quelle/*

Wenn ich das Script über den Aufgabenplaner starte, sind die Umlaute der Dateien im Archiv versaut.
Wenn ich das (gleiche!) Script über die Konsole starte, sind die Umlaute der Dateien im Archiv alle ok.

Es macht keinen Unterschied, ob ich im Aufgabenplaner das Script einfüge oder per "bash script123.sh" das Script im Aufgabenplaner verlinke und ablaufen lasse.

Ich bin verwirrt... kann mir jemand auf die Sprünge helfen? ;)
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.137
Punkte für Reaktionen
898
Punkte
424
Kannst z.b. Mal mit /bin/env im Script schauen, welche Umgebungsvariablen so gesetzt sind. Die unterscheiden sich ja nachdem wie das Script läuft.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.555
Punkte für Reaktionen
1.394
Punkte
234
In meinem jugendlichen Leichtsinn habe ich angenommen, dass ich /bin/env im Script aufrufen und die Ausgabe in eine Datei umleiten soll.

Ergebnis:
Über die Konsole gestartet:
Rich (BBCode):
SHELL=/bin/ash
TERM=xterm
SSH_CLIENT=192.168.0.43 1579 22
SSH_TTY=/dev/pts/24
LC_ALL=en_US.utf8
USER=root
PAGER=more
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
MAIL=/var/mail/root
_=/bin/env
PWD=/volume1/synology/scripte
JAVA_HOME=/usr/local/java
LANG=en_US.utf8
HOME=/root
SHLVL=2
TERMINFO=/usr/share/terminfo
LOGNAME=root
SSH_CONNECTION=192.168.0.43 1579 192.168.0.8 22
PGDATA=/var/services/pgsql

Über den Aufgabenplaner gestartet (Zeitpunkt):
Rich (BBCode):
SHELL=/bin/sh
MAILTO=
USER=root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
_=/bin/env
PWD=/root
SHLVL=3
HOME=/root
LOGNAME=root
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.310
Punkte für Reaktionen
2.870
Punkte
423
Siehst ja den Unterschied selbst. Nimm mal zumindest
Code:
LANG=en_US.utf8
mit in dein Script mit auf.

Generell ist es immer sinnvoll, die wichtigsten Teile aus der /etc/profile und ~/.profile mit in ein Script aufzunehmen (auch PATH=... z.B.) - zur Not auch alles. Dann laufen die Scripte sowohl interaktiv und auch im Aufgabenplaner. Der Aufgabenplaner führt diese Login-Scripte zuvor nicht aus - im Gegensatz zu interaktiven Anmeldung.
 
Zuletzt bearbeitet:

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.555
Punkte für Reaktionen
1.394
Punkte
234
Das hat mir weitergeholfen und ich habe was dabei gelernt.
Danke euch beiden.

Für die Nachwelt:
Im Script habe ich folgendes eingefügt:
Rich (BBCode):
export LC_ALL=en_US.utf8
export LANG=en_US.utf8

Nu funktionieren auch wieder die Umlaute. :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat