私はbashを初めて使用し、これまでコード化したことはありませんが、このタスクはスタックしているため、削除する必要があります。複数のdirを含む単一の圧縮ファイルを作成するには、bashスクリプトを作成する必要があります。
お気に入り -
/home/code/bots/
/var/config/
.
.
.
/var/system/
そして、すべてが単一のファイル/var/file/bkup.[Zip][tar.gz]に圧縮されます。
前もって感謝します
# 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
たとえば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スクリプトがどのように機能するかの一例にすぎません。
あなたが説明した問題は、bashスクリプトを必要とせず、tar
だけです。
tar cvzf /var/file/bkup.tar.gz /home/code/bots/ /var/config/ . . . /var/system/