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)