Linux

Screen常用的命令

经常在命令行中执行一些命令的时候,有的是需要在后台执行的,或者有的时候登录在VPS中,退出ssh后,这条命令就自动中断了。这个时候采用Screen的方式就比较好处理。 Screen可以理解成为一个新开一个窗口,每次当你新建一个screen的时候,他就是独立的。可以随时随地的恢复一个状态。 常用的命令 screen -ls #显示当前所有的screen,会有两个状态一个是detach,另外一个是attach,有点像Android中的Fragment的状态一样。 screen -S xxx #创建一个名为xxx的screen screen -r xxx #恢复(或者叫attach一个名为xxx的screen) screen -d xxx #detach某个screen screen -d -r

  • Domon
    Domon
1 min read
Linux

MySQL设置用户访问权限

对于有远程访问MySQL的需求的话,通过MySQL的权限管理,可以设置一个新的用户指定IP访问,指定数据库操作,指定表,这样用最小粒度确保安全。创建新用户可以通过SELECT user,host from mysql.user;查出当前的用户及Host。Host一般为localhost,127.0.0.1,%,固定IP。%的意思是,任意IP都可以。为单独的程序新建一个MySQL用户CREATE USER 'username'%'host' INDENTIFIED BY 'userpassword';即可创建一个新的用户。给该用户设定权限为了保证安全,一般都需要设定的权限最小。比如,定位到某个数据库的某个表,

  • Domon
    Domon
2 min read
IT

Linux安装Jenkins

Jenkins是大名鼎鼎开源的CI软件,有非常多的插件,可以完成自动化部署,构建等功能。最近发现前端工程师,在每次的发布流程都非常的折磨人,于是想着不然自己搭建一个CI来处理。CI的好处是显而易见的,可以持续集成和持续交付。我在之前做国外的项目的时候,这种便利,让我只需要关注我自己的代码和逻辑即可。代码编写出错,CI就过不去。代码通过后,QA就可以直接拿到APK包直接测试,完全不用我本地手动出包。节省了两边的时间。按照一般Android的流程来看,本地写完代码—Push代码—提交PR—通过审核—打APK包—QA测试。有CI介入之后,相当于打APK包的操作就交由Jenkins来完成了。每一次的Push都可以对应一个APK包,QA只需要在当前的APK中测试是否问题已经解决。现在这位前端同事使用的是Vue的框架。他的本地流程是本地写完代码—Push代码—到服务器Pull代码—

  • Domon
    Domon
5 min read
IT

印象笔记剪藏修改登录地区

由于之前一直在使用英文系统,工作中换了一台新机器,发现Chrome的剪藏插件同步下来,登录的时候默认是登录到国际版了,但是我的帐号是国区付费的。这样也会导致剪藏的文章在国际版的帐号中,众所周知两个数据是完全不互通的。我重新在应用商店下载剪藏插件,无果,仍然只能登录国际版。然后我尝试去印象笔记的官网去下载这个crx。这里安装的时候出现了一个错误。package is invalid 'crx header invalid’<!-- more —>查询了一下,原因是这个crx的文件的问题,遂想其他办法。有的人说的更加离谱,在剪藏的设置界面,按上上下下左右左右AB,就会出来一个选项,可以选择中文简体,这样就能登录国区账户。尝试,没有反映。

  • Domon
    Domon
1 min read
IT

ClickUp基础使用说明

日常工作中需要有类似Jira且免费的软件来管理项目开发,找寻体验了一圈,发现ClickUp的整体素质非常不错。随即就在公司推广了起来。 一般情况我们再说敏捷开发的时候,都需要一个类似的项目管理工具,来直观的可视化的看到当前这个Sprint里面的任务以及当前Sprint的燃尽图。有了这些数据和进度的保障,也会让开发工作变得更加顺滑。 任务基础流程及规范 任务流转流程 任务对应的指派人,开始该任务时,需要将任务的状态从「 Open改为「进行中」(三种种改动方法: 在任务详情页面中修改 在列表/看板界面直接拖拽 在看板/列表界面点击状态选择 任务在「进行中」时 若任务完成时需要将任务状态从「进行中」改为「已完成」,并指派给需求的发起者 若任务如果因为各种情况被阻塞,例如U没有提供,需求没有明确,

  • Domon
    Domon
5 min read
IT

Windows Server网站数据迁移

由于一台服务器(A)下架,所以需要将之前的网站转移到另外一台服务器(B)当中。整个项目为PHP的项目,采用了Zkeys的集成化工具(PHP,MySQL,PhpMyAdmin)。 备份MySQL数据库文件 在MySQL中直接拷贝 在A中拷贝原有数据库文件,一般情况,MySQL的数据文件会在 mysql安装目录/data/对应的数据库名称 如果没有找到安装目录,则可以通过进入MySQL命令行的方式获取 mysql -u用户名 -p密码 进入mysql命令行控制台,输入下面语句即可查看 show global variables like ‘%datadir%’; 将数据库文件(一般为frm,

  • Domon
    Domon
4 min read
IT

鼠须管安装及简单配置

输入法作为一个入口,能掌握和得到的数据很多,比如但不限于密码,聊天文字,不合时宜的文字等等。所以,一般情况我是不会用第三方的闭源输入法。随着iOS12,对于双拼的系统层面的支持,从此我就变成了原生输入法。用了这么久觉得一切都挺好,尤其微软拼音在Win10下的表现令我挺意外。至于苹果上,iOS上面的双拼(微软双拼)键盘布局有点让人不开心,以及MacOS原生输入法切换中/英文的Caps的按键有点奇葩之外(尤其是在HHKB上,需要Fn+Tab),其余我都挺喜欢。但是不是有更好的选择。答案当然是肯定的,那就是RIME。 RIME输入法再Mac下面叫鼠须管,它的定制性很强,以至于挡住了一部分人。这篇文章也是简单的说一下,如何调教出来一个比较好用好看的输入法。 基本使用 在这里可以下载到最新版本的鼠须管,安装过程很简单。

  • Domon
    Domon
6 min read
IT

Git Reset 三种模式

日常的工作当中,由于需要和别人协同工作,代码方面当然就直接使用Git的方式来管理了。在日常使用当中有很多命令比较常用 git commit git push git stash git rebase -i HEAD~想要合并的Commit数量 git reset git rebase 我在这一篇文章已经做了一点讲解,应该使用起来都比较方便。值得一提的是,可以使用git rebase -abort来撤销一次rebase。 今天来说一下git reset。它的一句话概括 git-reset - Reset current HEAD

  • Domon
    Domon
3 min read
IT

Telegram Bot开发(一)-- 申请调试Bot

由于群里面的小伙伴的需要,刚好我也想玩玩,就答应了帮他做一个Telegram Bot(下简称TgBot),用来统计和维护我们群里面的一些信息。接下来,我会用一点时间,把整个流程给写出来,做成一个系列,方便以后大家的查阅。网络上也有很多库可以使用,本着学习的态度,我还是觉得需要造轮子。 先说一下需要准备的东西: Tg的账号 从BotFather申请的Bot的Token 流畅的网络能访问Tg的Api 模拟请求神器Postman的简单使用 高级语言,Python,Java,Kotlin,Ruby,C++都可以,选一个你熟悉的就好 能够访问TgAPI的服务器 这一篇文章,我们先来看看如何通过Postman调用TgAPI来获取TgBot接收和发送消息。 申请Bot 在你的Tg客户端中搜索BotFather,看名字就知道是所有Bot的father。

  • Domon
    Domon
3 min read
IT

手动更新Kindle

前两天听说,Kindle更新了固件5.9.6,支持自定义的字体了。但是我在Kindle中的自动更新上面一直是灰色不可用的状态。查了下才知道,Kindle的推送是分批的,一般在一个周到一个月不等。本着,自己动手,丰衣足食的原则,我自己去下载了新的固件,并使用了几个免费的没有版权的字体。整个过程非常的简单。 下载对应你的Kindle版本的固件。根据你自己的版本来在这里下载。 将Kindle连接到电脑的USB中 打开Kindle的根目录,复制上面下载的固件进去 拔掉电源,在Kindle的设置-设备信息-高级里面,就会发现自动更新已经可以使用了 点击自动更新,等待设备自己重启更新固件 设备开机之后,根目录会多出一个文件夹font,将你想要自定义的字体(TFF格式为佳)放进去 打开一本书,在Aa设置当中,就会发现有自己的自定义字体可以选择了

  • Domon
    Domon
2 min read
IT

Git合并Commit

在日常的代码提交过程中,一定会有一些情况,提交了一些临时的Commit,这些Commit会影响整个我们回顾Git Log。所以需要在合适的时候,将一些临时的信息,或者某几条Commit合并起来。 首先假设我们有三条最新的Commit记录,ABC。我们输入 git rebase -i HEAD~3 HEAD~3表示从当前的提交往回三次以内的提交。这时候,会进入一个rebase-edit的界面。在这个界面中,可以选择你想要合并的Commit,通过Commands: p,pick 使用这条commit r,reword 使用这条commit,并编辑commit message e,edit

  • Domon
    Domon
1 min read
Linux

服务器图片403

这两天服务器端的环境已经部署好了,发现了一个问题,登录后台管理系统的时候,很多图片的地址无法正常访问。提示403错误,顺藤摸瓜的找了很久,没发现什么异常。改了Nginx的配置文件,支持了正则图片格式。仍然失效。突然想起来是不是权限设置的有问题。ls -al 一看果然。,。默认的权限都是root的。因为我设置了一个独立的用户组来控制,所以在nginx访问这些目录的时候,肯定会提示403错误。大意了大意了。

  • Domon
    Domon
1 min read
IT

SSH服务器免密码登录

最近由于工作的需要,经常需要通过SSH登录各种不同的服务器。之前是通过vSSH这个软件来管理,现在比较倾向就使用iTerm2就可以了。 在使用终端来进行操作的时候,一次两次SSH还可以,但是次数多起来后,一遍又一遍的输入密码很麻烦。而且为了安全,我们AliYun的密码也挺复杂。每一次都需要在Evernote中找到,复制粘贴过来,很不爽。本来考虑写个脚本来处理,但是觉得明文的将密码存储下来,不是很安全。 So,既然都用的SSH,那合不使用SSH的特性来处理这个问题?免密码登录,就能方便的登录各个不同的服务器了。 SSH是一种对称加密,所以我们就只需要通过把自己的公钥放到远程服务器中就可以了。 拷贝出自己的公钥信息 cat ~/.ssh/id_rsa.pub 登录到远程服务器中,查看**~/.ssh/authorized_

  • Domon
    Domon
2 min read
IT

Typecho数据库格式转换为Hexo

由于自己博客框架从Typecho转换到了Hexo,整体的数据格式还是有一定的区别的,所以如何将把我之前的数据导过来是一个头大的事情。 Github上找了几个人写的方案,感觉思路都没有问题,只是感觉还是有点繁琐。 困扰了我几天之后,这个问题在今天得到了解决。 参考了下这为朋友的Tyephcoq迁移到Jekyll,我也下载了这个库使用了下,特别的方便。 分享给大家,戳这里 使用方法很简单,一行命令就可以搞定。连接服务器之后按格式转换后,保存本地。 typecho2md --host localhost -u root -k root -d typecho -p typecho_ -t tempt.md outputdir/ 配置的模版信息tempt.

  • Domon
    Domon
1 min read
Tips

MySQL远程数据库访问出错排查

上一次在做Django的时候,我就遇到一个问题,我的远程MySQL数据库一直连接不上,比较头疼。但是后来通过mysqldump把数据从远程拷贝到本地来了。 这一次由于牵扯到Typecho的数据转换,我找到的解决方案是通过node的一个包来进行转换。为了使我的Blog数据得以迁移过来,我就不得不开始了折腾之旅。 Navicat里面提示错误信息「2013」,查询了很多结果,基本上都是说自己的远程MySQL没有配置好导致的。 问题排查记录: 去找了下配置文件/etc/my.cnf,里面并没有配置bind_address。应该是MySQL版本较高的原因,默认配置是没有的。 在**[mysqlld]中添加上了skip_name_resolve**,仍然不起作用 远程数据库帐号权限问题,再三确认没有问题 可以通过以下命令获取远程登录权限 grant all

  • Domon
    Domon
1 min read
IT

网站全面升级HTTPS协议

3月22日更新 谷歌爸爸升级Chrome后,证书StartCom被拉黑了,无法访问。 12月7日更新 果然StartCom基本算不行了,每一家都不认可。今天刚好给公司的服务器配置SSL的时候,发现有一家厂子的SSL挺便宜的,4刀一年,遂入手三年。+-+; 基本配置和下面一样,这一家买的时候,你的Private Key是直接发送到邮箱的,所以需要用scp命令自己传送到服务器去。 配置成功的话可以通过下面命令测试下有效性: nginx -t -c /your nginx config.conf 若测试通过的话,重启一下Nginx,就基本完成了。 可以把之前的Http的80端口监听做一下处理。 server { listen 80; server\

  • Domon
    Domon
3 min read
IT

三星S7(G930F-FD)&S7Edge(G935F)Root

给媳妇最近买了个港版的S7(型号为G930F),为了想让她和我一起方便的使用谷歌全家桶,以及有效的防止国内各种互相唤醒。所以第一步需要Root。 简单查了下,国行版本的S7由于处理器的原因,现在没有完美Root,且Root后是无法保修的,因此当时选择的时候也毅然决然的选择了港版双卡。 注意:使用下面的Root方法,你会永久的放弃Knox软件的使用 准备工作: CF-Auto-Root.zip文件 Galaxy S7 SM-G930F| 下载地址 Galaxy S7 Edge SM-G935F| 下载地址 三星的USB驱动,下载地址 具体步骤: 下载三星USB驱动,并安装 解压上面对应的Zip包,打开Odin3 打开手机的开发者模式,

  • Domon
    Domon
2 min read
IT

PHP-Fpm导致Nginx502错误

最近遇到一个奇怪的问题,站点没有做过什么改动,但是访问的时候Nginx报502错误。 登录到服务器,通过top命令一查,很多个php-fpm进程,占用了非常多的CPU资源。 第一个我想到的是,看Nginx conf配置对了没,检查了下一点问题都没有。 接着看了下php fastcgi的配置也没有错误。 继续往下排查,去看了下Nginx的访问Log,发现有问题了。有两个ip在不断的访问服务器,10ms左右。这个就比较坑了。 马上在Nginx.conf中加入 deny xxx.xx.xx.xx屏蔽了这两个ip,以为完事大吉了。但是并没有生效,这个其实到现在我还是不理解为什么。忘有人能解释下。 既然这样通过Nginx的屏蔽措施无法成功,那我职能是通过iptable的方式去屏蔽了。 iptables-t

  • Domon
    Domon
1 min read
IT

使用Typecho && VPS搭建轻量级博客

最近由于使用了Hexo的静态博客,深感静态页面的Blog简介高效,好管理,非常的Geek。就想着能不能找到一个轻量级的仿照WP的博客框架。最终发现了Typecho,其实还是非常符合我的意愿的:小巧、简介、有后台发布系统。说开始就开始,准备搭建,开始了无尽的踩坑之旅。 环境问题 确保有: PHP5.1以上 MySQL or SQLite等任意一种数据库支持 数据库中创建一个「typecho」的数据库 我的VPS上目前是LNMP1.3的环境,再次感谢军哥。 安装过程 去这里下载最新版本的Typecho,解压到你想放的网站的根目录里,注意名字切记切记 解压后,配置一下ng的conf,添加以下两行(

  • Domon
    Domon
5 min read
IT

使用hexo&github来搭建一个个人博客

以下操作均在Mac系统上完成,前提系统需要支持NodeJS&Git。 环境安装 安装NodeJS下载地址,安装过程不再详述,很简单 git一般情况都有,Windows用户实在不会的话去安装一个github的客户端,系统就有了 接下来是安装Hexo: 新建一个目录存放hexo mkdir ~/myself/hexo npm install hexo-cli -g hexo init blog cd ~/myself/hexo/blog npm install 以上即安装完毕了。 常用命令 hexo g(

  • Domon
    Domon
1 min read
IT

几分钟快速入门Python

获取代码:[learnpython.py](https://learnxinyminutes.com/docs/files/learnpython.py) Python由Guido Van Rossum在1991年创造的。它是现今存在的最流行的语言之一。我喜欢上Python是因为其简洁的语法。它基本上通过伪代码执行。 注意:这篇文章适用于Python 2.7,但可能适用于Python 2.x。Python 2.7将在2020年停止支持。 写的Python代码,同时兼容Python 2.7 和 3.x是完全有可能的。

  • Domon
    Domon
16 min read
IT

SVN服务器迁移问题

本人开发环境Android Studio.由于公司工位变动,所以网络环境有所改变。之前的所有开发都在一个网段,SVN是其中一个固定IP地址。 调动成:部分开发在0.xx的网段,而我在1.xx网段。看似很简单,但其实不是。我是由0.11的一个A路由器接入的1.xx的内网。所以我需要在0.xx的根路由器配置A路由器。SVN通过wifi连到A路由器。听起来是不是有点绕。 对于我来说,我是1的内网段的,所以可以直接访问1.99的SVN。其余的开发需要配置一个路由,让自己0的网段可以访问到这里的数据。比较简单,就不详细说了。 重点说一下Android Studio解决SVN服务器迁移的问题。 首先是地址变动的问题 在AS中,找了一圈都不见更改SVN地址的地方,

  • Domon
    Domon
2 min read
IT

Vim+Markdown写Wordpress博客

什么是Markdown 在上一次的博文中我已经介绍过了,不了解的点此进入传送门。那次只是顺口提了提如何用Vim去写Markdown,这篇文章就来教教大家具体的怎么去做。 准备工作 安装和配置插件 插件的选择必然是VimRepress的无疑,下载地址。关于这个插件的前身,便是VimPress了,只不过那个已经没有人来维护,所以一些国外的网友将其改写重构后,改名为VimRepress,其实从名字都能看得出来。 将下载的zip包,解压然后得到三个文件夹,分别放到你Vim的相关同名文件夹的底下。然后用Vim打开blog.vim,利用/Settings找到下面的代码: ###################### Settings ###################### blog_username ='xxxx' blog_password ='xxx' blog_url ='http://www.

  • Domon
    Domon
3 min read