運維(一)

kuoren發表於2015-11-12

一、將自己的資料庫雲服務(阿里雲或騰訊雲)的資料匯出到本地,由於購買的是服務,所以沒有伺服器可以ssh ,購買服務的優勢在於,費用小,免去管理成本和實體機成本;缺點可操作性差,安全性差。資料庫服務只能通過 mysql -h -u -p 連線到資料庫,進行檢視,並不能訪問到資料庫所在的伺服器。
方案一:使用 select … into outfile/dumpfile ‘filepath’ ,此方案只能將資料匯出到服務所在的伺服器目錄下(即本地),且總是受讀寫檔案的許可權限制;
方案二:使用 mysqldump 命令,做資料備份,將資料匯出備份到本地,然後結合方案一操作,但是如果只是匯入關心的資料而採用此方法太耗時耗力;
方案三:使用 mysql -h host -u user -p -e ‘select …’ > ‘本地檔案路徑’;(檔案可以不存在)
eg:

mysql -h ipaddr -u user -p -e "use databasename ;select t1.c_update_time,t2.c_prize_content,t3.c_cellphone from t_prize_owner t1 join t_prize t2 on t1.c_prize_id=t2.c_prize_id join t_user t3 on t1.c_user_id=t3.c_user_id  " > ./dump_20151111.xls

當將上面的語句放入sh檔案時,-e後面的引數使用變數時,必須是雙引號“””,否則變數不被識別

#!/bin/sh

#定義變數
execsql="use databasename ;select t1.c_update_time,t2.c_prize_content,t3.c_cellphone from t_prize_owner t1 join t_prize t2 on t1.c_prize_id=t2.c_prize_id join t_user t3 on t1.c_user_id=t3.c_user_id"

mysql -h host -u user -p -e "$execsql"  >/home/user/deploy/downloads/dump20151116.csv

二、遠端複製scp
scp 遠端如果涉及到埠號則使用-P 命令,一定要大寫P
scp -P port user@host:/filepath localpath

1、複製遠端檔案到本地:
scp user@host:filepath localdic ;
eg:

scp u@192.168.111.12:/home/kuoren/deploy/downloads/dump_20151111.xls /home/kuoren/data

2、複製本地檔案到遠端
scp localfilepath user@host:remotedirpath
eg:scp ./test.sh user@192.168.112.12:/home/user/directory/

三、多檔案合併cat
1、多個檔案合併到一個檔案
eg

cat add_table_20151012.sql add_table_20151027.sql > add_table.sql

2、將一個檔案追加到另一個檔案之後
eg 將add_table.sql內容追加到create_table.sql內容之後

cat add_table.sql >> create_tables.sql

四、自動化
1、如果經常需要複製檔案和登陸遠端,可已將命令寫成sh檔案,每次直接執行即可
sh 檔案的開頭必須是 #!/bin/sh
sh 檔案註釋 #
sh 檔案需要有執行許可權 :chmod +x file.sh
sh 檔案執行:./shfile.sh 其中./代表當前目錄
檔案一 :

#!/bin/sh

scp ~/data/sh/user_order_flow.sh user@host:/home/user/deploy/uploads/

或者使用變數,作為輸入引數
檔案二 upload.sh :

#!/bin/bash

scp $1 user@host:/home/user/deploy/uploads/

執行檔案二是需要使用:./upload.sh ~/data/sh/user_order_flow.sh($1)

五、ubuntu檢視支援的中文字型
方法一:使用命令:fc-list :lang=zh-cn
方法二:開啟LibreOffice,輸入中文可以檢視系統支援的字型


相關文章