自宅に居るときだけスクリプトを動作させる
さて、先日sitecopyで同期する方法を実装した訳ですが…
sitecopyを使ったサイトの同期 - ksworks.org
ちょっと前にレンタルサーバのデータ消失事件などがありましたが… 自前でサーバを運用でもしていないかぎり、やはりそこは生命線(^_^;) いざという時の為の備えはやはり必要だよね、と思うわけです。
そもそも自分が使ってるメインのPCであるMBAは、自宅の外にも持ち歩いて作業している事がある…
外出時の回線状況では、使いたく無い場合というのが大半になります(^_^;)
なので、自宅に居るときだけ同期するようにしてみました。
まずはインタフェース名を調べます。
自宅でThunderbolt Displayに接続している時のインタフェースは…
$ ifconfig | egrep '^[a-z]' lo0: flags=8049mtu 16384 gif0: flags=8010 mtu 1280 stf0: flags=0<> mtu 1280 en0: flags=8823 mtu 1500 p2p0: flags=8802 mtu 2304 fw0: flags=8863 mtu 4078 en4: flags=8863 mtu 1500
で、そこから接続を外した状態でチェックしてみます。
$ ifconfig | egrep '^[a-z]' lo0: flags=8049mtu 16384 gif0: flags=8010 mtu 1280 stf0: flags=0<> mtu 1280 en0: flags=8823 mtu 1500 p2p0: flags=8802 mtu 2304
fw0/en4辺りがインタフェースのデバイス名で使えそうです。
そして、明らかに名前からして en4 がネット回線なので、これを利用しますw
#!/bin/sh # # sitebackup.sh - Download site (sitecopy) # # Required: sitecopy, growlnotify # # Authors:: Ken AKASHI# Version:: 2012-07-14 # License:: NYSL Version 0.9982 # Copyright:: Copyright (C) ksworks, 2012. All rights reserved. # 自宅などの固定回線のある環境で使用するインタフェース名 INTERFACE=en4 # 自宅の環境で有効なインタフェースがあればコピーする if /sbin/ifconfig $INTERFACE > /dev/null 2>&1 then /usr/local/bin/growlnotify -t "sitebackup" -m "sitecopy start..." /opt/local/bin/sitecopy -af # Fetch /opt/local/bin/sitecopy -as # Sync /usr/local/bin/growlnotify -t "sitebackup" -m "sitecopy fetch & sync done." fi exit 0;
ということで、こんなスクリプトを作成してcron
登録することに( ´ ▽ ` )ノ
動作してるのかしてないのか、その辺りを把握したいということもあり、実際に実行する前後にgrowlnotify
を追加してみたり。
これで、実は裏でsitecopy
が動いてるのにシャットダウンしてしまった!などの誤操作が防げるはず!
$ crontab -l | grep site 30 21 * * * ~/bin/sitebackup.sh > /dev/null
crontab
の登録内容もだいぶスッキリしましたw
# crontabの登録をスクリプトにしておくことにより、今後のメンテで他に作業を追加するなどもやりやすくなった訳です
- スポンサードリンク -