eclipse设置自动换行

哥虽然写代码不多,但是是个eclipse控,于是发现 Eclipse 使用系统内置的“ Text Editor ”做为文本编辑器,这个文本编辑器有一个问题,就是文本无法换行。特别是注释特别长时,你就知道麻烦了。

终于发现出了一个扩展插件 WordWrap ,这个插件非常小,但是安装这个插件以后就可以轻松实现文本编辑器的自动换行功能了。 谢谢这个作者哦!

安装方法:
使用Eclipse 的自动升级功能,菜单栏选【 Help 】→【 install new Software】
点解Add按钮,在“ Name ”中填入“ wordwrap ”,“ URL ”中填入“ http://ahtik.com/eclipse-update”

然后按照提示进行安装完成就可以了
装完后在代码编辑界面点右键,会出现“Word Warp ”属性,将这个属性选上就可以实现自动换行了!

参考
http://blog.csdn.net/wanghuan203/article/details/6995386

mysqlimport 将格式化文件导入mysql表

pre: has to wiki
mysqlimport [options] db_name textfile1 [textfile2 …]
其中db_name为要插入的数据库名字,textfile为要插入的格式化数据所在的文件,文件里的数据插入到文件名去掉后缀后剩余名字对应的表中
比如:mysqlimport [省略选项] Statistic Spam.txt
会把Spam.txt中的数据插入到数据库名为Statistic,表名为Spam的数据表中

mysqlimport --local -u$dbuser -p"$dbpw" -h$dbip --lines-terminated-by="\n" --fields-terminated-by="^" -P$dbport d_logs ${logstat_table}.txt --columns=act,content,ctime

下面介绍一些mysqlimport常用到的选项

–lines-terminated-by=
数据行以什么结束,参数为字符串,windows默认为\r\n

–fields-terminated-by=
数据域以什么结束,参数为字符串,默认为\t

–columns=第一列对应的数据表列名,第二列对应的数据表列名,…
定义被导入文件中的每一列对应的数据库表列名

参考
http://blog.csdn.net/anljf/article/details/6600602

vsftp install and selinux config on centos6.x

ftp

1.安装 vsftpd
yum install vsftpd -y

2.同步数据和配置
rsync -avz root@192.168.1.3:/data/vsftp/ vsftp/

rsync -avz root@192.168.1.3:/etc/vsftpd/ vsftpd/
/etc/init.d/vsftpd restart

3.添加用户
useradd -d /data/vsftp -g ftp -s /sbin/nologin dkmftp

4.selinux设置

setenforce 0 #关
setenforce 1 #开

setsebool -P ftp_home_dir 1
setsebool -P allow_ftpd_full_access 1
setsebool -P ftpd_connect_db=on

service vsftpd restart

5. selinux 配置
SELinux在enforcing模式下配置vsftp,运行指定用户访问
https://wiki.centos.org/zh/HowTos/SELinux#head-23b32edada724aa8a29ab04685b53de6455e08a0
http://www.linuxquestions.org/questions/linux-software-2/vsftpd-and-selinux-449313/
http://dingxuan.info/blog/read.php/313.htm
http://nameyjj.blog.51cto.com/788669/496025

### 下面是乱的 可以不用看

setsebool -P ftp_home_dir 1

#CentOS6里,是这样
setsebool -P allow_ftpd_full_access 1
setsebool -P ftpd_connect_db=on

service vsftpd restart

/etc/selinux/config

此时访问ftp,你会发现无法访问,这是由于SELinux引起的。
[root@localhost yjj]# setsebool -P ftp_home_dir=on
[root@localhost yjj]# setsebool -P ftpd_connect_db=on

getsebool -a|grep ftp

2. 经过研究,又找到了另一个更理想的办法。首先查看SELinux中有关FTP的设置状态:
getsebool -a|grep ftp

allow_ftpd_anon_write –> off
allow_ftpd_full_access –> off
allow_ftpd_use_cifs –> off
allow_ftpd_use_nfs –> off
allow_tftp_anon_write –> off
ftp_home_dir –> off
ftpd_connect_db –> off
ftpd_disable_trans –> on
ftpd_is_daemon –> on
httpd_enable_ftp_server –> off
tftpd_disable_trans –> off

经过尝试发现,打开ftp_home_dir或者 ftpd_disable_trans。都可以达到在enforcing级别下,允许FTP正常登录的效果。

setsebool -P ftp_home_dir 1
#CentOS6里,是这样
setsebool -P allow_ftpd_full_access 1

setsebool -P ftpd_connect_db=on

service vsftpd restart

加-P是保存选项,每次重启时不必重新执行这个命令了。最后别忘了在/etc/sysconfig/selinux中,修改SELINUX=enforcing。

saltstack 文件管理-pass

Q:项目有好几台机器要改一下备份脚本,如果一台台上去,真的是烦和累,刚好想到salt ,爽了一把 又有想学好 python的动力了 哈哈

A:
1、文件传输:
salt自带有cp模块,模块的方法可以用下面的命令查看下
salt '*' sys.doc | grep "salt '\*' cp"

发送一个文件给客户端: 会自动覆盖原来的文件 这个要小心
root@ab bakcup]# salt 'abroad_db' cp.get_file salt://dbbackup.sh /root/dbbackup.sh
abroad_db2:
/root/dbbackup.sh

salt的主目录在/srv/salt下面,这个可以在配置文件里设定,我上面就是把/srv/salt/test/dbbackup.sh这个文件推送到客户端去
这样写可能报错哦
salt ‘abroad_db2’ cp.get_file salt://dbbackup.sh /root/

2、文件追加:
使用file模块的append方法:

root@debian:/srv/salt# salt '*' file.append /root/test.sh "adfadf"
192.168.1.101:
Wrote 1 lines to “/root/test.sh”
这样可以轻松把内容添加到文件上去,file还有很多方法,具体可以看看源码

不怕文件零碎,不怕新加了机器你还要为他们单独推送

salt提供的sls模板来实现下
先在/srv/salt目录下建立一个入口文件
root@debian:/srv/salt# cat top.sls
base:
'*':
- scpfile.mytest

第二行是一个标志
第三行是指定机器

第四行就是去执行scpfile目录下mytest.sls这个文件
[root@ab scpfile]# cat mytest.sls
/root/test.sh:
file.managed:
- source: salt://scpfile/test.sh
- mode: 755

sls文件讲解
第二行是客户端文件位置
第三行是salt函数
第四行是源文件
第五行是指文件的权限控制
然后在scpfile目录下新建一个test.sh
最后我们来推送一下:

#run
[root@abroad_sdk scpfile]# salt '*' state.highstate -v
Executing job with jid 20161111165118556055
——————————————-

abroad_queue:
———-
ID: /root/test.sh
Function: file.managed
Result: True
Comment: File /root/test.sh updated
Started: 16:51:18.969509
Duration: 14.46 ms
Changes:
———-
diff:
New file
mode:
0755

Summary
————
Succeeded: 1 (changed=1)
Failed: 0
————
Total states run: 1

这里开始 是另外一个机器了

追加内容: sed 的好像不成功
[root@abroad_sdk scpfile]# cat mytest.sls
/root/test.sh:
file.managed:
- source: salt://scpfile/test.sh
- mode: 755
/root/test.sh:
file.append:
- text:
- "11111111111111"

sed修改内容:

root@ubuntu:/srv/salt/scpfile# vi my.sls
- textdd:
/root/test.sh:
file.managed:
- source: salt://scpfile/test.sh
- mode: 755
/root/test.sh:
file.append:
- text:
- "11111111111111"
/root/test.sh:
file.sed:
- before: 11111111111111
- after: 2222

——————————————————–
root@ubuntu:/srv/salt/scpfile# salt ‘*’ state.highstate -v
Executing job with jid 20131031165305244140
——————————————-
192.168.1.101:
———-
State: – file
Name: /root/test.sh
Function: sed
Result: True
Comment: sed ran without error
Changes: diff: —
+++
@@ -1,4 +1,4 @@
adfkdddddd
ddddddddddd
ddd
-11111111111111
+2222

Summary
————
Succeeded: 1
Failed: 0
————
Total: 1

参考
http://lihuipeng.blog.51cto.com/3064864/1317841

自动化运维神器之saltstack (二)文件服务器
http://www.ahlinux.com/mainte/9915.html

用Thunderbird邮件客户端发送邮件时,进行到“将邮件拷贝到sent mail folder时”就卡住

Q:
用Thunderbird邮件客户端发送邮件时,进行到“将邮件拷贝到sent mail folder时”就卡住,但实际上已经发出去了

A:
每次发送邮件后总显示正在复制消息到sent文件夹,解决办法
1.点左侧树状图中的帐号—再点“账户设置”
2.选择“副本和文件夹”
3.勾选“保留副本到:”。再点对应下方的“其他:”
4.在下拉框中选择自己的帐号即可看见“sent messages”
send

vimdiff

vimdiff

Ctrl+W Ctrl+W 切换窗口
do 拉过来另个窗口的改变
dp 把改变应用到另个窗口
zo 打开折叠代码
zc (关闭)折叠代码

vimdiff 颜色配置:

vimdiff默认的颜色方案会使红色看不清,可以为vimdiff换个colorschema,例如peaksea(http://www.vim.org/scripts/script.php?script_id=760),放到~/.vim/colors/。修改~/.vimrc:

[plain] view plain copy

if ! has(“gui_running”)
set t_Co=256
endif
if &diff
colors peaksea
endif

GoDaddy SSL(UCC/SAN SSL)证书从购买到Nginx配置

Question:项目里有5个域名要添加 https

Answer:

第一 购买ssl key 这边是决定在godaddy 购买 并选择 UCC/SAN SSL 有5个san 而我要保护的刚好是5个域名 这样的好处是费用比较低,但是对运维的要求可能就比较高,很多要运维操作的,而不像国内的,给钱就全搞定了,直接给你个crt文件
官方购买链接
https://sg.godaddy.com/zh/web-security/ssl-certificate

第二 动手操作过程
1) 生成key
openssl req -new -newkey rsa:2048 -nodes -keyout 您的域名.key -out 您的域名.csr
Country Name (2 letter code) [AU]:CN(CN就代表中国)
State or Province Name (full namne) [Some-State]:Guangdong(填省份)
Locality Name (eg, city) []:Shaoguan(填城市名)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:XXX.com
Organizational Unit Name (eg, section) []:DBA
Common Name (e.g. server FQDN or YOUR name) []: 一定要注意 这里要填写 5个SAN中的一个哦 这里填写最终认证的网址,如:xxx.com(加不加www都是可以的,加或不加,godaddy都会同时认证www和不带www的。见godaddy的说明 http://support.godaddy.com/help/article/5343/generating-a-certificate-signing-request?pc_split_value=4)
Email Address []:admin@xxx.com(最好是以域名为后缀的邮箱,填写其它的也行,)
Please enter the following ‘extra’ attributes to be sent with your certificate request
A challenge password []:(留空)
An optional company name []:(留空)

#要注意这个哦 一定要注意 这里要填写 5个SAN中的一个哦
Common Name (eg, your name or your server’s hostname) []:pay.game.com

2)
添加主题备用名称 (SAN)
ucc 添加主题备用名称
https://certs.godaddy.com/cert/advanced/jkl4oaea7onn3qfhjdmecmd7kydjy6c6

3)
(name of your certificate).csr,把里面的内容粘到godaddy的相应表单内,然后等待审核

4) 如果域名不在你的这个帐号中 就要 Verify domain ownership
我一般选择HTML Page 按要求 上传个文件到web目录下

验证 ownship
https://sg.godaddy.com/zh/help/ssl-html-dns-7452
https://sg.godaddy.com/zh/help/verify-domain-ownership-html-or-dns-7452

5)审核过了,去GoDaddy下载生成的证书,选择证书时,服务器类型选择 other ,不要问我为什么 哈哈

这里要注意,下载回来的是2个crt文件,需要运行下面命令把他们合并成一个
教程 http://nginx.org/en/docs/http/configuring_https_servers.html#chains

cat www.mysite.com.crt gd_bundle.crt > mysite_combined.crt

6)修改或者添加 nginx的配置文件

ssl_certificate指向crt文件位置,ssl_certificate_key指向key文件位置(一开始自己生成的那个pri key ),nginx SSL就可以工作了。

server {
#listen [::]:80;
#listen [::]:80 ipv6only=on;
listen 443 ssl;
server_name game.com ;
ssl_certificate /data/game.com.crt;
ssl_certificate_key /data/game.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

https 测试
打开你添加了key 的那个站点,
或者
https://casecurity.ssllabs.com/

参考
https://www.godaddy.com/help/ssl-certificates-1000006?v=1

Nginx配置GoDaddy SSL证书步骤

nginx 域名跳转配置

如下 www.game.com game.com 都 跳转到另外一个域名 pay.com

[root@web1 host]# cat www.game.com.conf
server {
listen 80;
server_name www.game.com game.com;
if ($host = 'www.game.com' ) {

rewrite ^(.*)$ https://pay.com/$1 permanent;
}

if ($host = 'yahgame.com') {

rewrite ^(.*)$ https://pay.com/$1 permanent;
}
}

Nginx 域名跳转配置