s3cmd-0.9.9.91がUTF-8なファイル名を食ってくれない


 s3cmdで事務所データのバックアップを掛けているが、スクリプトを改善しようとしてエンバグった。間違えてUTF-8なファイル名のままS3に置こうとしてしまって、s3cmdがエラー発生。
 s3cmdに日本語ファイル名を投げないように変更したのだが、せっかくだからs3cmdのどこでエラーが発生しているのか見てみた。ふむふむ。site-packages/S3/S3Uri.pyの中でos.stat()にUnicode型を投げてるせいでUnicodeEncodeErrorっぽいかなあ。うむ。どーでもいいか(笑)。site-packages/S3はs3cmdの一部っぽいかな。同一作者だし、検索してもs3cmdしかヒットしないし。

 バックアップスクリプトの見直しを終えて、crontabを書き直して、寝て起きてS3の中を見ると、何故かcronでスクリプトが発動していた。crontabには1:45と指示してあり、実際に1:45に旧スクリプトが起動してエラーを吐いていて、1:45付けのメールが届いている。その後、crontabを7:00前後に書き直したのは覚えているが、その時に1:45の指定は変えていない。そしてS3の中には7:01に転送されたファイル群が。これはS3の仕様からして、7:01に転送を開始したことになるだろうから、つまりスクリプトが7:01に発動したものと思われる。んー。cronの仕様がよく分からんな。
 何でこうなったんだろう、と考えていたが、よくよく設計を見直すとそもそもOsukini側でcronを使う必要が無いことに気付いたので、cronを使わないように修正して忘れることに。

(Visited 6 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください