- PR -

tar cvfコマンドについて

1
投稿者投稿内容
やすけ
ベテラン
会議室デビュー日: 2003/08/20
投稿数: 87
投稿日時: 2006-12-05 22:44
nakamuraと申します。
サーバのあるディレクトリのバックアップを行おうと思い、tarコマンドを実行する際に
あるディレクトリ以外でかつ、あるファイル以外をDATテープに吸い上げるコマンドを発行したのですが、そんなファイルまたはディレクトリは存在しないというエラーになってしまいます。きっと、書き方がおかしいと思うのですが、なにぶん初心者な者でどなたかご教授願いますでしょうか?以下のコマンドを発行するとエラーします。
tar cvf /dev/nst0 *[!lost+found][!*.ctl] >> bu.log 2>> bu.log
lost+foundというディレクトリ以外でかつ.ctlと名のつくファイル以外すべてを吸い上げたいです。
Linuxサーバのバージョンは
Miracle Linux Standard Edition V2.1 (Styrax)です。
あるかな
大ベテラン
会議室デビュー日: 2003/11/04
投稿数: 245
投稿日時: 2006-12-05 22:56
こんばんは。

単なる shell の問題とも思わなくも無いですが。
やすけ様の環境で *[!lost+found][!*.ctl] を単純に ls で指定して、リストが取得できますか?
無理であれば、tar でも無理かと。
B 系や C 系の書き方もあると思いますが、
コマンド1行でやるにはそれなりな工夫が必要かと思います。

シェルスクリプトで find と grep の組み合わせなら出来そう。。。
F/A
ぬし
会議室デビュー日: 2006/03/18
投稿数: 312
お住まい・勤務地: Tokyo
投稿日時: 2006-12-05 23:53
tar cvf /dev/nst0 * --exclude '*.ctl' --exclude lost+found
やすけ
ベテラン
会議室デビュー日: 2003/08/20
投稿数: 87
投稿日時: 2006-12-07 11:25
あるかなさん、F/Aさん早速のレスありがとうございます。
お返事が遅れて申し訳ありません。F/Aさんの方法でやってみたら出来ました。
ありがとうございます。ただ、疑問なのはこれはLinuxでのコマンドでしょうか?
ちなみにUnixでは私の方法で既に本番機サーバにて運用されています。
くろねこ
会議室デビュー日: 2005/08/11
投稿数: 7
お住まい・勤務地: 名古屋の辺り
投稿日時: 2006-12-07 11:50
--excludeはGNU tarで使えるオプションだった気がします。
#LinuxはGNU tarを利用しているので、--excludeが使えます

その為、UnixでもGNU tarを利用しているかで変わります。
私の経験ではSolarisであればディフォルトではGNU tarは導入されておらず、
GNU版では無いtarコマンドであるため、--excludeは使えません。
(※別途インストールする事は可能です)

ただ、GNU版ではないtarについても、exclude-listというオプションが使える為、
下記のような対応をしました。

除外リストファイルの作成
# vi exclude-list
→ tar cfの際に除外したいファイルリストを作成
# tar cf /dev/rmt/0 exclude-list <バックアップ取得対象>

参考になれば幸いです。
やすけ
ベテラン
会議室デビュー日: 2003/08/20
投稿数: 87
投稿日時: 2006-12-13 11:49
くろねこさんお返事が遅れて申し訳ありません。
exclude-listについては、今回は試してみてませんが、
GUI版じゃないtarの際はぜひ使用してみたいと思います。
本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)