Monthly Archives: May 2017

chage命令 来自: http://man.linuxde.net/chage

By | 2017-05-27

chage命令用户和工作组管理 chage命令是用来修改帐号和密码的有效期限。 语法 chage [选项] 用户名 选项 -m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。 -M:密码保持有效的最大天数。 -w:用户密码到期前,提前收到警告信息的天数。 -E:帐号到期的日期。过了这天,此帐号将不可用。 -d:上一次更改的日期。 -i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。 实例 可以编辑/etc/login.defs来设定几个参数,以后设置口令默认就按照参数设定为准: PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 当然在/etc/default/useradd可以找到如下2个参数进行设置: # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes 通过修改配置文件,能对之后新建用户起作用,而目前系统已经存在的用户,则直接用chage来配置。 我的服务器root帐户密码策略信息如下: [root@linuxde ~]# chage -l root 最近一次密码修改时间 : 3月 12, 2013 密码过期时间 :从不 密码失效时间 :从不 帐户过期时间 :从不 两次改变密码之间相距的最小天数… Read More »

网盘关闭?如何利用Docker和对象存储OSS轻松搭建ownCloud专属网盘?

By | 2017-05-24

网盘关闭了怎么办?如何搭建个人网盘,怎样操作?文件共享是团队协作的刚需,面对说停就停的网盘服务,很多同学除了心塞已经开始盘算搭建自己的网盘应用了。ownCloud 是一个开源免费的存储管理工具,它能帮你快速架设一套专属的网盘服务,可以像 Dropbox 那样实现文件跨平台同步、共享、版本控制、团队协作等等。 然而在VPS上搭建ownCloud是一件费时费力的工作,除此之外更需要考虑数据的可靠性、备份等工作。 本文将利用阿里云容器服务在几分钟内轻松搭建一个基于Docker的ownCloud专属网盘,并使用阿里云提供的对象存储OSS(Object Storage Service)作为高可靠、低成本的云存储后端。 创建 对象存储OSS bucket 首先你需要创建一个和容器服务处于同一区域中的bucket,这样容器应用可以通过内网地址来访问bucket中存储的文件数据,提升访问速度并节省公网带宽 创建 对象存储OSS 数据卷 数据卷是Docker提供的容器储存模型:可以实现容器和数据生命周期的解耦,当容器被删除或重建之后数据依然存在;提供了可扩展的插件机制,支持不同的存储实现。 阿里云容器服务内置了针对阿里云的数据卷驱动,支持不同类型的云存储服务:包括NAS(文件存储服务 NFS),OSS(对象存储服务,OSSFS)和云盘(即将推出)。关于数据卷的详细信息可以参阅帮助文档。http://click.aliyun.com/m/10899/。 OSSFS(http://click.aliyun.com/m/10900/) 能把对象存储OSS bucket挂载到本地像访问本地文件一样操作云端存储数据,非常适合文件存储类型的应用。我们可以在容器服务控制台的“数据卷”页面,方便地为指定集群创建一个“OSS”类型的数据卷 配置如下: ·      数据卷名:owncloud ,也可以选择其他值,这个需要和下文模板中引用volume保持一致 ·      AccessKeyID和AccessKey Secret:可以从当前用户账号的“accesskeys”中获得 ·      其他参数值:输入 -o noxattr 来提升数据卷性能 ·      访问域名:根据当前集群的网络方式,选择“内网域名”或者“VPC域名”来访问对象存储OSS bucket。 ·      文件缓存:选择 打开 可以提升访问性能 值得注意的是:对象存储OSS和NAS类型的数据卷都是全局(global)数据卷,会出现在集群中任何一个节点上。如果容器指明了重新调度配置,即使所在节点挂掉,可以自动在其他健康节点上重新恢复,而相同数据卷依然可以mount到容器指定目录上,不会导致数据丢失。 创建编排模板 在编排模板列表页面,创建如下编排模板 owncloud:   image: owncloud:9   restart: always   links:     – mysql:mysql   volumes:     – owncloud:/owncloud   labels:    aliyun.routing.port_80: ‘owncloud’ mysql:   image: mysql:5.7   restart: always   environment:     MYSQL_ROOT_PASSWORD: changeme 注释: ·      这里使用了ownCloud的官方Docker镜像 和 MySQL的官方Docker镜像。ownCloud应用容器利用容器别名mysql来关联MySQL容器。 ·      利用aliyun.routing.port_80:’owncloud’标签指明了用于访问网盘应用的虚拟域名 ·      利用 volumes 中的数据卷映射,把我们创建出来的对象存储OSS数据卷owncloud挂载到容器的/owncloud目录。 使用编排模板部署ownCloud应用 选择编排模板,点击部署应用。片刻之后,应用就会部署成功 选择owncloud服务,并点击访问端点 在浏览器中就可以看到ownCloud的配置界面了 输入管理员账号和密码之后,选择“存储&数据库”进行配置。ownCloud缺省会使用SQLite作为数据库,并使用本地文件系统来保持数据文件。请按如下界面修改配置 注意: ·      数据目录: 输入 /owncloud/data 这里面/owncloud是对象存储OSSbucket在容器中的挂载点 ·      配置数据库:选择 MySQL/MariaDB ·      数据库用户: 输入 root ·      数据库密码: 输入编排模板中对应数据库ROOT密码 ·      数据库名称: 输入 owncloud ·      数据库地址: 输入 mysql 连接MySQL数据库容器 点击“安装完成”,片刻之后下面的页面会出现 使用ownCloud应用 这时候你的专属网盘就成功建立起来了。不但可以上传文件,还可以为文件生成“分享链接”。 收到链接的小伙伴,就能看到你送来的满满的节日祝福了… Read More »

PostgreSQL数据库创建、删除、角色权限

By | 2017-05-22

最近一直在使用Postgresql,命令总是记不住,就索性整理下来,方便自己,也给大家分享下。 Postgresql常见操作指令: 连接数据库, 默认的用户和数据库是postgres psql -U user -d dbname 切换数据库,相当于MySQL的use dbname \c dbname 列举数据库,相当于mysql的show databases \l 列举表,相当于mysql的show tables \dt 查看表结构,相当于desc tblname,show columns from tbname \d tblname 创建数据库: create database [数据库名]; 创建数据库指定用户: create database [数据库名] owner [用户名];; 删除数据库: drop database [数据库名]; *重命名一个表: alter table [表名A] rename to [表名B]; *删除一个表: drop table [表名]; *在已有的表里添加字段: alter table [表名]… Read More »

通过wget下载jdk

By | 2017-05-19

wget –no-check-certificate –no-cookies –header “Cookie: oraclelicense=accept-securebackup-cookie” http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm

Connecting JIRA applications to MySQL

By | 2017-05-19

These instructions will help you connect JIRA to a supported MySQL database. Before you begin Check whether your version of MySQL is supported. See Supported platforms. If you are migrating JIRA to another server, create an export of your data as an XML backup. You will then be able to transfer data from your old database to… Read More »

nginx+tomcat+java部署总结

By | 2017-05-11

昨天部署了一下nginx+tomcat+java出现了很多问题,以下为整理总结。 使用了两种部署方式,一种是源码部署,一种是war部署。     java源码部署总结: 环境:nginx+tomcat 部署方式:源码部署 1 源码目录 /chroot2/test/schedule 目录下面就是所有源码了 2 tomcat 位置: /usr/local/tomcat/apache-tomcat-scheduleweb-test 主要配置文件server.xml <Host name=”localhost” appBase=”/chroot2/test/schedule” deployOnStartup =”false” autoDeploy=”false” unpackWARs=”true”> <Context path=”/schedule” docBase=”.”/> <Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs” prefix=”schedule-web-test.cn-access_log.” suffix=”.log” pattern=”common” resolveHosts=”false”/> </Host> 主要注意: <Context path=”/schedule” docBase=”.”/>的配置 3 nginx配置 upstream配置: upstream tomcat_schedule_web_test{ server localhost:8291 weight=10; } server配置: server { listen 80; server_name test.schedule.toys178.com; index… Read More »

以实际的WebGIS例子探讨Nginx的简单配置

By | 2017-05-11

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉及到部分正则表达式的内容。在这个实际例子中,我们要做的是使用Nginx为WebGIS中常用的离散瓦片做一个伺服器。关于Nginx的下载、与tomcat的组合配置、测试例子可以参考我的上一篇博客http://www.cnblogs.com/naaoveGIS/p/5478208.html。 2.Nginx中的简单配置 2.1配置一般代理路径 让Nginx监听8010端口,一般情况下均转发到localhost:8080端口下。 2.2 配置瓦片资源代理路径 包含GISV14,以png等结尾的请求均在ROOT文件夹下寻找资源。 切记,此时需要将所有瓦片也转移到该文件夹下: 2.3 增加过滤配置 以上配置对所有png结尾的请求均作了代理转发地址。但是很多样式文件中的png图片也被转发了,这里需要做一个过滤进行规避: 即GISV14/library/的请求还是转发至localhost:8080下。 2.4检查Nginx的配置后重新加载 正确后,则重新加载配置。 3.结果展示 下图为前端展示效果: 其后台瓦片资源请求如下: 4.Nginx中的常见正则表达式 Linux环境下,要使用nginx提供的正则表达式名字,那么在编译安装nginx时必须首先安装Perl编程语言正则表达式(PCRE)。 4.1常见规则 ~ 区分大小写匹配。 ~* 不区分大小写匹配。 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配。 ^ 以什么开头的匹配。 $ 以什么结尾的匹配。 . 匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。 * 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。 + 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 4.2注意 a.为了使用正则表达式,在服务器名字开始之前使用一个波浪号字符“~”,否则,就会被作为准确的名字来对待。 b.如果在表达式中包含一个星号(*),那么就会被作为一个通配符名字(最有可能成为无效的名字)。 c.不要忘记设置锚符号“^”… Read More »

Nginx与tomcat组合的简单使用

By | 2017-05-11

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中瓦片资源越来越多,如果提高瓦片的访问效率是一个需要解决的问题。这里,我们考虑使用Nginx来代理静态资源进行初步解决。 2.Nginx简介 Nginx (“engine x”) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的。 何为反向代理呢?即以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。 而Nginx主要完成的工作就是反向代理,比如我们向一台服务器的80端口发送了请求,该请求首先由Nginx监听到,其接受到请求内容后再转发给其他服务器,其他服务器处理完后再将结果传送给Nginx,最后由Nginx来统一返回给初始请求端。 Nginx最常见的使用方法就是作为静态资源伺服器,比如将CSS,JS,html,htm等文件进行缓存处理。 3.环境搭建 3.1下载 首先在官网中下载所需版本:http://nginx.org/en/download.html。目前我使用的版本是windows环境下的1.9.15。 下载完毕后,解压。 3.2开启Nginx 开启Nginx有两种方法,一种是直接点击开启,一种是命名行开启。 a.点击开启: b.命名行开启: 开启成功后,在资源管理中可以看到: 3.3常见问题—启动失败 出现启动失败问题,一般是端口冲突问题,比如win7下的IIS已经启动并占用了80端口。在config目录下找到nginx.conf,打开文件进行如下修改: 4.初步使用 4.1用网页测试是否启动成功 其中的配置为: 其表示监听8010端口请求后,会首先去html文件夹下寻找index.html页面。 4.2详解部分参数含义 listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。 server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。 location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里 root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。 index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。 4.3配置tomcat跳转   通过proxy_pass配置请求转发地址。即当访问localhost的8010端口时,请求会跳转至localhost的8080端口处。修改完Nginx的配置后不需要重启Nginx,输入如下命令即可: 测试如下: 5.进一步使用 5.1静态文件分离配置   上面我们直接试了一个小例子,让nginx进行转发,即所谓的反向代理。但实际上我们的需求不会是这样的,我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP,而html,js,css这些不需要处理的,直接给nginx进行缓存。 下面我们来进行一下配置,让JSP页面直接给tomcat,而html,png等一些图片和JS等直接给nginx进行缓存。 这时最主要用的还是location这个元素,并且涉及到一部分正则,但不难,具体配置如下: 此时再直接输入localhost:8010,则会报404错误了。但是输入localhost:8010/index.jsp,则一样可以跳转至tomcat首页中。 5.2 负载配置 当一台服务器出现故障后,我们需要将请求自动转向另一台服务器,此种需求该如何配置呢?利用Nginx也是比较方便能够实现,具体配置如下: 注意,上面还加上了一个weight属性,此属性表示各服务器被访问到的权重,weight越高访问到的几率越高。 5.3其他配置 5.4关闭Nginx

testNg+maven +jenkins进行selenium自动化集成

By | 2017-05-09

上一次搞定了appium+python+jenkins的自动化集成,但是感觉对于jenkins的集成还是有很多不太理解的地方,所以今天抽空研究了下使用testNg+maven+selenium+jenkins的自动化集成。 正文 准备环境 首先我们新建一个maven的工程,并且在pom.xml中配置好我们依赖的一些jar包 <dependencies> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.46.0</version> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.9.6</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-api</artifactId> <version>2.46.0</version> </dependency> </dependencies> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 编写我们selenium脚本 public class NewTest { private WebDriver driver; @BeforeTest public void beforeTest(){ driver = new… Read More »