cron 定時任務執行備份腳本文件 backup.sh
#!/bin/bash USER="root" PASSWORD="xxxxx" DATABASE="jfinalbbs" HOSTNAME="127.0.0.1" WEBMASTER="abc@qq.com" CRONTAB="00 01 * * * /bin/bash /data/db/backdb.sh" BACKUP_DIR=/data/db/ #備份文件存儲路徑 LOGFILE=/data/db/data_backup.log #日記文件路徑 DATE=`date '+%Y%m%d-%H%M'` #日期格式(作為文件名) DUMPFILE=$DATE.sql #備份文件名 ARCHIVE=$DATE.sql.tgz #壓縮文件名 OPTIONS="-h$HOSTNAME -u$USER -p$PASSWORD $DATABASE" #mysqldump -help #判斷備份文件存儲目錄是否存在,否則創建該目錄 if [ ! -d $BACKUP_DIR ] ; then mkdir -p "$BACKUP_DIR" fi #開始備份之前,將備份信息頭寫入日記文件 echo " " >> $LOGFILE echo " " >> $LOGFILE echo "———————————————–" >> $LOGFILE echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE echo "———————————————– " >> $LOGFILE #切換至備份目錄 cd $BACKUP_DIR #使用mysqldump 命令備份制定數據庫,並以格式化的時間戳命名備份文件 mysqldump $OPTIONS > $DUMPFILE #判斷數據庫備份是否成功 if [[ $? == 0 ]]; then #創建備份文件的壓縮包 tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1 #輸入備份成功的消息到日記文件 echo "[$ARCHIVE] Backup Successful!" >> $LOGFILE #刪除原始備份文件,只需保 留數據庫備份文件的壓縮包即可 rm -f $DUMPFILE else echo "Database Backup Fail!" >> $LOGFILE fi #輸出備份過程結束的提醒消息 echo "Backup Process Done"
mysqldump: command not found問題解決
首先得知道mysql命令或mysqldump命令的完整路徑,可以使用find命令查找
除非你知道mysql安裝路徑可以略過這一步。
find / -name mysql -print
例如我的mysql的路徑是:/usr/local/mysql/bin/mysql,然后映射一個鏈接到/usr/bin目錄下,相當於建立一個鏈接文件
ln -fs /usr/local/mysql/bin/mysql /usr/bin
ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
mysqldump同理 其中/usr/local/mysql/是mysql的安裝路徑。