web-dev-qa-db-ja.com

bashスクリプトコードは、いくつかのフォルダーのZip / tarを作成するのに役立ちます

私はbashを初めて使用し、これまでコード化したことはありませんが、このタスクはスタックしているため、削除する必要があります。複数のdirを含む単一の圧縮ファイルを作成するには、bashスクリプトを作成する必要があります。

お気に入り -

/home/code/bots/
/var/config/
.
.
.
/var/system/

そして、すべてが単一のファイル/var/file/bkup.[Zip][tar.gz]に圧縮されます。

前もって感謝します

13
Arshdeep
# tar: (c)reate g(z)ip (v)erbose (f)ile [filename.tar.gz] [contents]...
tar -czvf /var/file/bkup.tar.gz /home/code/bots /var/config /var/system

# Zip: (r)ecursive [filename.Zip] [contents]...
Zip -r /var/file/bkup.Zip /home/code/bots /var/config /var/system
39
John Kugelman

たとえばcronjobで実行し、事前にmysqldumpなどの他のコマンドを追加する場合は、bashファイルを作成できます。

次の内容でbackup.shのようなファイルを作成する必要があります(bashへのパスを変更する必要がある場合があります。bashはwhereis bashで見つけることができます)


#!/bin/bash
# 
# Backup script
# 

# Format: YEAR MONTH DAY - HOUR MINUTE SECOND
DATE=$(date +%Y%m%d-%H%M%S)

# MySQL backup file
MYSQLTARGET="/var/file/backup-mysql-$DATE.sql"

# Target file
TARTARGET="/var/file/backup-$DATE.tar.gz"

# MySQL dump
# you cannot have a space between the option and the password. If you omit the password value 
# following the --password or -p option on the command line, you are prompted for one.
mysqldump -u root -ppassword --all-databases > $MYSQLTARGET

tar -czvf $TARTARGET $MYSQLTARGET /home/code/bots /var/config /var/system

PS。これはテストされていないコードです。これは、現在返信されているコンテキストでbashスクリプトがどのように機能するかの一例にすぎません。

3
Dennis

あなたが説明した問題は、bashスクリプトを必要とせず、tarだけです。

tar cvzf /var/file/bkup.tar.gz /home/code/bots/ /var/config/ . . . /var/system/
3
ire_and_curses