gogs开启ssh支持

已经通过docker安装了gogs,http能正常使用,ssh不能使用 gogs配置app.ini [server] DOMAIN = xxx HTTP_PORT = 3000 ROOT_URL = http://xxx:13000/ DISABLE_SSH = false SSH_DOMAIN = xxx:10022 SSH_PORT = 22 START_SSH_SERVER = false SSH_LISTEN_PORT = 10033 SSH_ROOT_PATH = /home/git/.ssh OFFLINE_MODE = false REWRITE_AUTHORIZED_KEYS_AT_START = false docker ssh的配置文件路径 /app/gogs/docker/sshd_config 通过下面命令可以获得 ps aux 设置目录权限 chmod 0777 /data/git/.ssh chmod 0600 /data/git/.ssh/authorized_keys 在后台/管理面板执行 重新生成 ‘.ssh/authorized_keys’ 文件(警告:不是 Gogs 的密钥也会被删除) 重启ssh服务 $ service ssh restart $ exit 重新登录 ssh -p 10022 git@xxx git clone格式 ssh://git@xxx:10022/jabin/myproject.git copy ssh-key pbcopy < ~/.ssh/id_rsa.pub

August 15, 2018 · 1 min · 75 words · jabin

Linux下重置MySQL root密码

1、停止MySQL服务 执行: /etc/init.d/mysql stop 你的机器上也不一定是/etc/init.d/mysql,也可能是/etc/init.d/mysqld 2、跳过验证启动MySQL /usr/local/mysql/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1 & 注:如果mysqld_safe的位置如果和上面不一样需要修改成你的,如果不清楚可以用find命令查找。 3、重置密码 等一会儿,然后执行: /usr/local/mysql/bin/mysql -u root mysql 出现mysql提示符后输入: update user set password = Password('要设置的密码') where User = 'root'; 回车后执行: flush privileges; 刷新MySQL系统权限相关的表。再执行: exit; 退出。 4、重启MySQL 杀死MySQL进程: killall mysqld 重启MySQL: /etc/init.d/mysql start

August 17, 2013 · 1 min · 42 words · jabin

VPS硬盘被撑满

早上打开博客,发现显示“无法连上数据库”,遂登录ssh,重启服务。重启后,Wordpress可以访问了,但是标签及分类目录全部丢失。一阵Google,百度后,大多说是缓存爆满导致。 df -lh 果然,硬盘空间全部满了。于是寻找是哪个目录的问题。 先du -sh /*, 在/home目录的地方卡住了,然后Ctrl+C, 然后 ll|grep -v "total"|grep -v "home"|awk '{print $9}'|xargs du -sh 发现其他目录不大,知道是/home目录的问题了 递归对/home目录使用上面的方法处理 最后,发现是wordpress目录下的 wp-content/cache/* 超过10G了,此目录是 W3 Total Cache插件 的缓存目录,清空以下目录: wp-content/cache/object/* wp-content/cache/db/* wp-content/cache/page/* wp-content/cache/tmp/* 重启服务,OK。 此文给使用W3TC插件的同学一个提醒。

April 12, 2013 · 1 min · 33 words · jabin

ElasticSearch入门笔记

ElasticSearch 是构建在Apache Lucene之上的的搜索引擎服务,开源(Apache2协议),分布式,RESTful。安装方便,使用简单。 官方站点:http://www.elasticsearch.com/ 中文站点:http://es-cn.medcl.net/ 安装 必须先安装Java环境,并设置 JAVA_HOME => C:\Program Files\Java\jdk1.6.0_18 elasticsearch-rtf 中文入门集成包 https://github.com/medcl/elasticsearch-rtf 使用git签出,下载到本地。windows下,执行bin下面的elasticsearch.bat。linux下,执行bin下面或者service下面elasticsearch。 Pyes https://github.com/aparo/pyes 更多客户端 Bottle http://bottlepy.org/docs/dev/ 角色关系对照 elasticsearch 跟 MySQL 中定义资料格式的角色关系对照表如下 MySQL helasticsearch database index table type row document field field 索引映射 #创建索引 $ curl -XPUT http://localhost:9200/test-index #创建Mapping $ curl -XPUT http://localhost:9200/test-index/test-type/_mapping -d '{ "properties" : { "name" : { "type" : "string" } } }' @route('/indexsetting/') def indexmapping(): """索引映射""" conn = ES('127.0.0.1:9200') conn.debug_dump = True try: #删除索引 conn.delete_index("test-index") except: pass #创建索引 conn.create_index("test-index") mapping = { u'id': {'store': 'yes', 'type': u'integer'}, u'author': {'boost': 1.0, 'index': 'not_analyzed', 'store': 'yes', 'type': u'string'}, u'published': {'boost': 1.0, 'index': 'not_analyzed', 'store': 'yes', 'type': u'datetime'}, u'url': {'store': 'yes', 'type': u'string'}, u'title': {'boost': 1.0, 'index': 'analyzed', 'store': 'yes', 'type': u'string'}, u'content': {'boost': 1.0, 'index': 'analyzed', 'store': 'yes', 'type': u'string', "term_vector" : "with_positions_offsets"} } #索引映射 conn.put_mapping("test-type", {'properties':mapping}, ["test-index"]) return "索引映射" 索引 #索引 $ curl -XPUT http://localhost:9200/test-index/test-type/1 -d '{ "user": "kimchy", "post_date": "2009-11-15T13:12:00", "message": "Trying out elasticsearch, so far so good?" }' #获取 $ curl -XGET http://localhost:9200/test-index/test-type/1 #删除 $ curl -XDELETE 'http://localhost:9200/test-index/test-type/1' @route('/indextest/') def indexTest(): """索引测试""" conn = ES('127.0.0.1:9200') for item in Data().getData(): #添加索引 conn.index(item,"test-index", "test-type",item['id']) #索引优化 conn.optimize(["test-index"]) #删除索引内容 conn.delete("test-index", "test-type", 2668090) #更新索引内容 model = conn.get("test-index", "test-type", 2667371) model["title"]="标题修改测试" conn.update(model,"test-index", "test-type",2667371) #刷新索引 conn.refresh(["test-index"]) q = MatchAllQuery() results = conn.search(query = q,indices="test-index", doc_types="test-type") # for r in results: # print r return template('default.tpl', list=results,count=len(results)) 搜索 #lucene语法方式的查询 $ curl -XGET http://localhost:9200/test-index/test-type/_search?q=user:kimchy #query DSL方式查询 $ curl -XGET http://localhost:9200/test-index/test-type/_search -d '{ "query" : { "term" : { "user": "kimchy" } } }' #query DSL方式查询 $ curl -XGET http://localhost:9200/test-index/_search?pretty=true -d '{ "query" : { "range" : { "post_date" : { "from" : "2009-11-15T13:00:00", "to" : "2009-11-15T14:30:00" } } } }' #查找全部索引内容 $ curl -XGET http://localhost:9200/test-index/test-type/_search?pretty=true @route('/search/') @route('/search/<searchkey>') def search(searchkey=u"关键算法"): """索引搜索""" conn = ES('127.0.0.1:9200') #TextQuery会对searchkey进行分词 qtitle = TextQuery("title", searchkey) qcontent = TextQuery("content", searchkey) #发布时间大于"2012-9-2 22:00:00" qpublished=RangeQuery(ESRangeOp("published", "gt", datetime(2012, 9, 2, 22, 0, 0))) h = HighLighter(['<b>'], ['</b>'], fragment_size=500) #多字段搜索(must=>and,should=>or),高亮,结果截取(分页),排序 q = Search(BoolQuery(must=[qpublished],should=[qtitle,qcontent]), highlight=h, start=0, size=3, sort={'id': {'order': 'asc'}}) q.add_highlight("title") q.add_highlight("content") results = conn.search(query = q,indices="test-index", doc_types="test-type") list=[] for r in results: if(r._meta.highlight.has_key("title")): r['title']=r._meta.highlight[u"title"][0] if(r._meta.highlight.has_key("content")): r['content']=r._meta.highlight[u"content"][0] list.append(r) return template('search.tpl', list=list,count=results.total) 设置 #创建索引,并设置分片和副本参数 $ curl -XPUT http://localhost:9200/elasticsearch/ -d '{ "settings" : { "number_of_shards" : 2, "number_of_replicas" : 3 } }' 其他 #分词 curl -XGET 'http://localhost:9200/test-index/_analyze?text=中华人民共和国' 例子程序下载 ...

September 6, 2012 · 2 min · 363 words · jabin

安装Tornado

安装Tornado wget https://github.com/downloads/facebook/tornado/tornado-2.2.1.tar.gz tar xvzf tornado-2.2.1.tar.gz cd tornado-2.2.1 python setup.py build python setup.py install 到此,tornado已安装完成。 开启服务,运行hello world程序 cd tornado-2.2.1 ./demos/helloworld/helloworld.py 此时打开浏览器,地址栏输入:http://127.0.0.1:8888,即可看到hello,world 也可以通过命令行查看 python -m tornado.httpclient http://127.0.0.1:8888 如果连接不上可以打开iptables的配置文件: vi /etc/sysconfig/iptables 看看是否没有开放端口,修改后重启iptables service iptables restart 例,开放8000~8999端口: -A POSTROUTING -p tcp -m state --state NEW -m tcp --dport 8000:8999 -j ACCEPT

May 12, 2012 · 1 min · 48 words · jabin