2009-08-25 13 views
2

私は複数の日付のバックアップをcronで管理したいが、cronのファイル名をどのように連結するかわからない。日付を使ってcronのデータベースバックアップにファイル名を追加する

は現在、私は次のようにします。

/bin/mv /var/www/vhosts/mysite.org/dbBackups/today.sql /var/www/vhosts/mysite.org/dbBackups/yesterday.sql 

/usr/bin/mysqldump --add-drop-table -u dbname -pmypass dbname > /var/www/vhosts/mysite.org/dbBackups/today.sql 

私が試したどのようなダメでした:

/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > '/var/www/vhosts/mysite.org/dbBackups/' . date +%Y%m%d . dbname.sql 

それでは、どのように私はcronの中でその文字列をconcantenateのですか?

答えて

13
/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > "/var/www/vhosts/mysite.org/dbBackups/"`date +%Y%m%d`dbname.sql 
+0

フム、奇妙に見えます。これをコードブロックでフォーマットしてください。 –

+1

申し訳ありません、最初の投稿、ただ修正しました。 –

+0

ありがとう!魅力的な作品! – jerrygarciuh

1

バック引用符でdateコマンドを入れて、スペースを削除します(少なくとも)で

/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > /var/www/vhosts/mysite.org/dbBackups/`date +%Y%m%d`dbname.sql 

はあなたにも$(some command)構文の代わりにバッククォートを使用することができますbashの。 cronでうまくいくかどうかはわかりませんが、そのスタイルを好む場合は試してみてください(問題なくスタイルを入れられるという利点があります)。

3

$(...)構文を使用できます。

export MYDATE="$(date '+%Y-%m-%d')" 

をし、それはこのように連結を使用します:

/usr/bin/mysqldump/mysqldump --add-drop-table -u dbname -pmypass dbname > 
/var/www/vhosts/mysite.org/dbBackups/$(date +%Y%m%d)dbname.sql 
2

あなたはこのように変数を定義することもできます

...> /var/www/vhosts/mysite.org/dbBackups/"$MYDATE"dbname.sql 
+0

これは、複数のファイルを扱う場合に特に便利です。私はしばしば、たとえば複数のデータベースのバックアップを作成します。 –

関連する問題