pythonで環境変数を取得したり、ディレクトリを作成したりする
http://d.hatena.ne.jp/dwarfjay/20110603/1307103419の改造ネタの続きです。
このスクリプトは、crontabの中で、
@hourly /root/backup.py home
@daily /root/backup.py boot gentoo
として動かしていたのですが、'backup.py'のプロセスを二つ同時に動かした場合、マウントポイントが重複するため、バックアップが滅茶苦茶になってしまうという不具合があります。そこで、マウントポイントを実行ユーザーの$HOMEとした上で、マウントポイントをパーティション毎に分けることにしました。
環境変数HOMEの取得
os.getenv('HOME')
path pが存在するかどうか問いあわせ
os.path.exists(p)
ディレクトリの作成
os.mkdir(p)
mkdir -p相当
os.makedirs(p)
""" 文字列 mnt_root バックアップを取るパーティションをマウントする時のルート このプロセスを実行するユーザーのホームディレクトリとします """ mnt_root = os.getenv('HOME') """ 文字列 source_mtpt バックアップ元のマウントポイント """ source_mtpt = mnt_root + "/source/" + partition """ 文字列 dest_mtpt バックアップ先のマウントポイント """ dest_mtpt = mnt_root + "/dest/" + partition #もし、source_mtpt,dest_mtptが存在しなければ、作成します for p in (source_mtpt,dest_mtpt): if os.path.exists(p) == False: os.makedirs(p)
結構簡単に修正できました。