2017-06-09 2 views
1

Ich kann erfolgreich einen Befehl gsutil mit einem Windows-Domäne-Konto von der Befehlszeile in Windows ausführen (Dienstkonto-Schlüssel usw. einrichten). Wenn ich versuche, denselben Befehl von einem SQL-Agent-Job mit einer CmdExec-Task auszuführen, hängt der Job und wird nicht abgeschlossen. Ich kann keine Abholzung sehen, also habe keine Ahnung, worauf es wartet. Ich habe den Job so eingerichtet, dass er mit demselben Proxy-Benutzer ausgeführt wird, mit dem ich den Befehl gsutil manuell ausführe.SQL Server-Agent-Job und gsutil

Irgendwelche Ideen, wie ich das zum Funktionieren bringen kann oder wie man mehr Logging sehen kann?

Antwort

1

Verwenden Sie standalone gsutil? Oder haben Sie es als Teil der Installation des Cloud SDK (gcloud) erhalten?

Wenn der Job lange Zeit nicht mehr reagiert, kann es mehrmals wiederholt werden. Um zu testen, ob dies der Fall ist, können Sie die num_retries Option sehr klein sein, aber über 0 (zB 1) entweder in Ihrer .boto Datei oder die die Befehlsargumente über diese Option:

gsutil -o 'Boto:num_retries=1' <rest of command here...> 

Eine zweite Sache Zu beachten (zumindest für die Version von gsutil, die nicht mit gcloud geliefert wird) ist, dass gsutil standardmäßig in Ihrem Home-Verzeichnis nach Ihrer Boto-Konfigurationsdatei (die die zu verwendenden Anmeldeinformationen angibt) sucht. Wenn Sie gsutil als einen anderen Benutzer ausführen (möglicherweise wird Ihr SQL Agent-Job als eigener dedizierter Benutzer ausgeführt?), Sucht er nach einer .boto Datei in , die das Home-Verzeichnis des Benutzers enthält. Das gleiche sollte für die gcloud-Version gelten - gcloud verwendet die Anmeldedaten basierend auf dem Benutzer, der es ausführt. Sie können dies vermeiden, indem Sie Ihre .boto-Datei an eine Stelle kopieren, von der der Job gelesen werden darf, und die Umgebungsvariable BOTO_CONFIG auf diesen Pfad setzen, bevor Sie gsutil ausführen. Von der cmd Shell, würde dies in etwa so aussehen:

set BOTO_CONFIG=C:\some\path\.boto && gsutil <rest of command here...> 

Hinweis: Wenn Sie nicht sicher sind, welche Boto Config-Datei, die Sie normalerweise verwenden, können Sie, indem Sie gsutil version -l und Blick auf der Linie herausfinden, dass Displays Ihre Konfigurationspfad (e).

+0

Danke dafür. Es stellte sich heraus, dass die BOTO_CONFIG das Problem war. – jimmy

Verwandte Themen