运维(一)

一、将自己的数据库云服务(阿里云或腾讯云)的数据导出到本地,由于购买的是服务,所以没有服务器可以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 [email protected]:/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,输入中文可以查看系统支持的字体

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章