のために私はそれが基本的な質問である知っているが、私は.I圧縮助けてくださいとtarコマンドには、「タール」コマンドを使用してループ
for i in server.log.2016-07-05 server.log.2016-07-06 ; do tar -zcvf server2.tar.gz $i; done
を使用して、私のサーバーログファイルをアーカイブ上記のループの出力は次のようになります。
server.log.2016-07-05
server.log.2016-07-06
しかし、出力が得られtar -tvf server2.tar.gz
を使用してファイルを一覧表示しながら、は次のとおりです。
rw-r--r-- root/root 663643914 2016-07-06 23:59 server.log.2016-07-06
私は。つまり、2つのファイルをアーカイブしましたが、1つのファイルしか表示されませんでした。つまり、アーカイブには両方のファイルがあります。これで助けてください。
私はこれらの2つのファイルでテストしましたが、私のフォルダには複数のファイルがあります。予想される出力が得られなかったので、私は自分のフォルダ内のすべてのファイルを処理しませんでした。私が使用するつもり正確なループがある:
Previousmonth=$(date "+%b" --date '1 month ago')
for i in $(ls -l | awk '/'$Previousmonth'/ && /server.log./ {print $NF}');do;tar -zcvf server2.tar.gz $i;done
私は複数のファイルを圧縮してアーカイブしようとしているが、tar -tvf
、それはすべてのファイルを表示しませんを使用してファイルを一覧表示しながら、しています。
感謝私が言及したコマンドはどちらもうまくいきましたが、crontabを使って実行する予定でした。 'find'メソッドはすべての月に日付(2016-xx-xx) 'ls -l'以外を圧縮する – karthikraj
あなたの例のようにログファイルの名前が一貫している場合、' ls'や他のコマンドは必要ありません。シンプルなシェルグロブを使って私の更新されたソリューションを見てください – janos