ユーザ毎のスクリプトをバックアップ

■ユーザ毎のスクリプトをバックアップ

 1.CentOSのUIDは500から振られる。debianのUIDは1000から振られる。
 2.ディスクの空き容量を考慮していない。
 3.UIDが65534なのはnobody。
 4.シェル名に空白や2バイト文字、勝手な記号を入れるおかしなユーザは考慮しないし、
  そういうユーザにバックアップを邪魔させない。

    「grep -v」で空白は明示的に破棄。
  「grep」で、対象を「[A-z0-9\._-]*.sh」に制限。

  ※わざわざ「.bash」や「.csh」とする人も対象外。
   何の為の1行目の指定だか分からなくなるので。。。
   まあ、そこは汲み取っても良いとするなら、書き換えてください。。。
      また、「-」も許可しない古い人ならそうしても良いです。。。

  5.「xargs」で捌き切れない量か、捌ききれるか不明なら、一度ファイルに落としたほうが良い。
  目安は「20x1024」未満で、条件があるので、「man xargs」を参照。

■root権限で。

# awk -F\: '($3>=500&&$3<65534){print $1}' /etc/passwd | \
  for localuser in `xargs`;do \
    find / -user $localuser -type f -iname "*.sh" -print | \
      grep -v " " | \
      grep "[A-z0-9\._-]*.sh" | \
      tar zcvf ${localuser}_`date '+%Y%m%d'`.tar.gz `xargs`; \
  done