
我嘗試每天使用 mysqldump、screen 和 crontab 備份資料庫表。如果我只運行mysqldump
,它會正確轉儲,但如果我運行screen
,輸出檔案為空。
編輯定時任務
crontab -e
新增命令
0 0 * * * screen -dmS MYDATABASE_MYTABLE_backup mysqldump -u MYUSERNAME -pMYPASSWORD -h MYHOSTNAME MYDATABASE MYTABLE --compress | gzip > /root/backup/database/MYDATABASE_MYTABLE_`date +\%Y-\%m-\%d`.sql.gz
答案1
不太確定在這種情況下你想用 screen 來完成什麼以及為什麼需要它。但是您正在將 screen 的輸出通過管道(使用 | .. > )傳輸到轉儲文件,而不是在 screen 中運行的程式的輸出。您要么必須用引號將完整的突擊隊括起來 - 或者最好將突擊隊放入腳本文件中,然後簡單地調用腳本
myscript.sh:
#!/bin/sh
mysqldump -u MYUSERNAME -pMYPASSWORD -h MYHOSTNAME MYDATABASE MYTABLE --compress | gzip > /root/backup/database/MYDATABASE_MYTABLE_`date +\%Y-\%m-\%d`.sql.gz
螢幕-dmS MYDATABASE_MYTABLE_backup myscript.sh