WIndows のタスクスケジュールにはまりました。
定時に実行したいファイル c:\db\dbbackup.cmd を登録しても、「この操作が正しく終了しました」となるべき「前回の実行結果」が(0x2)になってしまうのです。
c:\db\dbbackup.cmd
sqlcmd -i c:\db\FullBackup.sql tar.exe -czf sql-db.tar.gz hoge.bak huga.bak xxxxxx.bak yyyyy.bak openssl enc -rc2-cbc -in sql-db.tar.gz -out db.tar.gz.enc -pass pass:xxxxx
c:\db\FullBackup.sql
BACKUP DATABASE DB1 TO DISK = 'c:\db\hoge.bak' WITH INIT BACKUP DATABASE DB2 TO DISK = 'c:\db\huga.bak' WITH INIT BACKUP DATABASE DB3 TO DISK = 'c:\db\xxxxxx.bak' WITH INIT BACKUP DATABASE DB4 TO DISK = 'c:\db\yyyyy.bak' WITH INIT
Windows XP および Windows Server 2003 におけるスケジュールされたタスクのトラブルシューティング
System Error Codes (0-499)
(0x2)はファイルが存在しないエラーの模様です。
c:\db\ を見ますとSQL サーバのバックアップファイルは出来ていますが、tar 以降で失敗しているようです。
コマンドラインから ./dbbackup.cmd を実行すると最後まで実行されます。
ここで悩みましたが、コマンドラインからタスクスケジュールを設定するとコマンドプロンプトが表示されるようになり、WIndows のタスクスケジュールはc:\windows\system32 で実行されることが分りました。
c:\db\dbbackup.cmd
sqlcmd -i c:\db\FullBackup.sql cd c:\db tar.exe -czf sql-db.tar.gz hoge.bak huga.bak xxxxxx.bak yyyyy.bak openssl enc -rc2-cbc -in sql-db.tar.gz -out db.tar.gz.enc -pass pass:xxxxx
cd c:\db を入れました。