bashでシステムのバックアップをしようとしています。

20050114_backup.tar.gz
などの日付部分を自動で入れたいと考えています。
スクリプト的にはどう書くのでしょうか?
また良いbashの言語使用のページがあったら教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/01/14 15:52:25
  • 終了:--

回答(6件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982005/01/14 16:00:33

ポイント15pt

http://www.nurs.or.jp/~sugi/getdate-sh.htm

ファイル名の一部に日付を付ける

#!/bin/sh

TDAY=`date +%Y%m%d`

cd /home/sugi

cp -p ./access.log ./access.log.$TDAY

これは 参考になりますでしょうか?

id:kunitz

ありがとうございます!

%Y%m%d

2005/01/14 16:10:20
id:UME No.2

UME/ゆーみ回答回数12ベストアンサー獲得回数02005/01/14 16:07:06

ポイント15pt

それぐらいでしたら、bashにこだわらなくてもどんなshellでも実施できそうな気が。

dateコマンドを使えばよいと思います。

こんな感じでどうでしょうか。

>|

|<

たぶんもっと簡単にできます。

id:kunitz

?

2005/01/14 16:11:06
id:dasm No.3

dasm回答回数66ベストアンサー獲得回数02005/01/14 16:16:31

ポイント15pt

cron に登録しておけば、勝手に指定の日の指定時刻に backup を取ってくれます。

id:kunitz

?

2005/01/14 16:17:14
id:UME No.4

UME/ゆーみ回答回数12ベストアンサー獲得回数02005/01/14 16:21:47

ポイント15pt

URLダミーです。

ごめんなさい

再回答です。

#!/usr/bin/bash

DIR=/export/home/hoge/archive

if [ ! -e $DIR ]

then

mkdir $DIR

fi

# date yyyymmdd

DATE=`date +’%m%d’`

YEAR=`date +’%Y’`

TAG=$YEAR$DATE

tar cvf - /export/home/hoge/hogehoge/* | gzip -c > $DIR/hogehoge.$TAG.tar.gz

これで、/export/home/hoge/hogehoge 以下のファイルを/export/home/hoge/hogehoge.yyyymmdd.tar.gzな感じで固められると思います。

自分、solarisしか手元にないので、tar cvxfとか使ってませんが・・・

id:kunitz

ありがとうございます!

2005/01/14 16:30:43
id:pingoo No.5

pingoo回答回数18ベストアンサー獲得回数02005/01/14 16:22:09

ポイント15pt

日付部分の記述についてはすでに他の方がdateコマンドを使って出しているようなので省きます。bashのページとしてはURLに挙げたJMのページが一番詳細です。辞書的に使えます。

http://www.atmarkit.co.jp/flinux/rensai/theory08/theory08a.html

bashで始めるシェルスクリプト基礎の基礎(1/2)

入門ならこのページがわかりやすくて親切だと思います。ただ、bashで細かいことをやろうとするとすぐJMのような詳しいページが必要になると思いますので、あくまで基本の習得と割り切るのがいいページです。

id:kunitz

ありがとうございます!

JMのページ

2005/01/14 16:31:42
id:kng No.6

kng回答回数15ベストアンサー獲得回数02005/01/14 19:05:53

ポイント15pt

URL はダミーです.私は簡単なバックアップ用には,こんなスクリプトで対応しています.

#!/bin/sh

# バックアップ保存日数

keepday=10

# 保存先ディレクトリ名

dest=/backup/hoge

timestamp=`date +%Y%m%d`

old_date=`date ”-d$keepday days ago” +%Y%m%d`

# バックアップを行うサブルーチン

# backup src backfile

# src=バックアップ元ディレクトリ名

# backfile=バックアップ後ファイル名

function backup {

bkfile=$dest/$2.$timestamp.tar.gz

tar cpzf $bkfile $1 >/dev/null 2>&1

if [ $? != 0 -o ! -e $bkfile ]; then

echo ”バックアップに失敗しました($bkfile)”

exit 1

fi

rmfile=$dest/$2.$old_date.tar.gz

if [ -e $rmfile ]; then

rm -f $rmfile

fi

}

backup /home/hoge/public_html public_html

id:kunitz

ありがとうございます!

2005/01/17 15:10:17

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません