在shell脚本中使用变量并作为cron作业运行

时间:2012-10-10 22:52:25

标签: unix amazon-ec2 sh

我有以下脚本dbbackup.sh

mysqldump -P 3306 -h 436543545.amazonaws.com -u admin--password=goaway mydb > dump-1.sql
s3cmd put dump-1.sql s3://database-blah-bucket
rm -f -r dump-1.sql

我需要进行以下更改

  1. 要采用以下格式(dump-1.sql)的文件为dump-dd-mm-yyy-hh-mm.sql
  2. sh dbbackup.sh运行脚本,我需要每天凌晨3点作为cron作业运行
  3. 完全不熟悉UNIX,所以不确定如何做到

2 个答案:

答案 0 :(得分:2)

您只需使用date命令,请参阅以下shell代码:

dump="dump-$(date +%d-%m-%Y-%H-%M).sql"
mysqldump -P 3306 -h 436543545.amazonaws.com -u admin--password=goaway mydb > "$dump"
s3cmd put "$dump" s3://database-blah-bucket
rm -f -r "$dump"

答案 1 :(得分:1)

dbbackup.sh的内容:

#!/bin/bash

HOST="436543545.amazonaws.com"
PORT=3306
USER="admin"
PASSWORD="goaway"
DATABASE="mydb"

DATE_STR=$(date +%d-%m-%Y-%H-%M)

FILENAME="dump-${DATE_STR}.sql

mysqldump -P $PORT -h $HOST -u $USER --password=${PASSWORD} $DATABASE > $FILENAME
s3cmd put $FILENAME s3://database-blah-bucket
rm -f -r $FILENAME

然后使用crontab -e进入crontab。输入:

0 3 * * *  /path/to/dbbackup.sh