發生災難時,我們難保雲端主機不會整個掛掉,造成連SSH都無法的窘境,
這個時候只剩下唯一的方法來救資料,那就是建立新的雲端主機,對舊主機做Snapshot或images。以外接硬碟的形式掛載在新的雲端主機上,透過mount的方式來存取舊資料。
以下是相關的指令:

建立一個虛擬資料夾,以下名為mount_directory_name

sudo mkdir -p /mnt/disks/mount_directory_name

用來看外接硬碟的實際路徑,假設是/dev/sdb1

sudo lsblk

將實體路徑掛載在虛擬資料夾上

sudo mount -o discard,defaults /dev/sdb1 /mnt/disks/mount_directory_name

賦予所有使用者權限

sudo chmod a+w /mnt/disks/mount_directory_name

如果你剛好遇到mysql資料庫需要從檔案還原,可以參考以下的單一資料庫復原的方式:

sudo cp -rf /mnt/disks/mount_directory_name/var/lib/mysql/databaseName /var/lib/mysql/
sudo chown -R mysql:mysql /var/lib/mysql/databaseName
sudo chown -R 660 /var/lib/mysql/databaseName
sudo chown mysql:mysql /var/lib/mysql/databaseName
sudo chmod 700 /var/lib/mysql/databaseName

如果你想備份在tmp資料夾

cd /tmp
vi backupday.sh

內容如下:

#!/bin/bash
basedir=/tmp/backup/
PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH
export LANG=C
basefile1=$basedir/[檔案名稱].sql.gz
[ ! -d "$basedir" ] && mkdir $basedir
mysqldump -u[資料庫使用者名稱] -p[資料庫使用者密碼] [資料庫名稱] | gzip > $basefile1
  1. 設定crontab
sudo vi /etc/crontab
  1. 內容如下(假設每日的晚上23時59分進行備份):
59 23 * * * root /tmp/backupday.sh

資料庫備份匯出成.sql.gz

mysqldump -uroot -p [databasename] | gzip > [databasename].sql.gz

資料庫匯入 (Linux)  (要先解壓縮)

mysql -u [username] -p [database_name] < dumpfilename.sql

資料庫匯入 (Linux)  (不需先解壓縮)

gunzip < [databasename].sql.gz | mysql -uroot -p [databasename]

資料庫匯入 (Mac)

gunzip < [databasename].sql.gz | /usr/local/mysql/bin/mysql -uroot -p [databasename]

資料庫匯入 (Mac, XAMPP)

gunzip < [databasename].sql.gz | /Applications/XAMPP/bin/mysql -uroot -p [databasename]

從本機上傳資料到遠端主機

scp -P [port] [yourfilename].tar.gz username@foo.com:/path/to/

從遠端主機下載資料到本機

scp username@foo.com:/path/to/[yourfilename].sql.gz /yourlocal/path/to/

資料打包壓縮

tar -zcvf [yourfilename].tar.gz [yourfoldername]

資料解壓縮

tar -zxvf [yourfilename].tar.gz

遇到磁碟空間不足時, 我們常常需要找出罪魁禍首, 所以需要知道哪個目錄快滿了(或已經滿了).
1. 磁碟空間的百分比
df -h
可以看到每個磁碟空間的百分比

2. 找出指定目錄下10大檔案 (這樣我們才知道要從何刪起)
du -a /var | sort -n -r | head -n 10
參考: http://www.cyberciti.biz/faq/how-do-i-find-the-largest-filesdirectories-on-a-linuxunixbsd-filesystem/

3. 其他du的用法:
參考: http://www.tecmint.com/check-linux-disk-usage-of-files-and-directories/