<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>吾生也有涯，而知也无涯</title>
    <description>饿狼在跳舞|随意潦草几笔</description>
    <link>http://aizya.github.io/</link>
    <atom:link href="http://aizya.github.io/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Sat, 08 Aug 2020 12:39:28 +0800</pubDate>
    <lastBuildDate>Sat, 08 Aug 2020 12:39:28 +0800</lastBuildDate>
    <generator>Jekyll v3.9.0</generator>
    
      <item>
        <title>使用NSSM将bat或者exe注册为Windows服务</title>
        <description>&lt;h1 id=&quot;nssm---the-non-sucking-service-manager&quot;&gt;NSSM - the Non-Sucking Service Manager&lt;/h1&gt;

&lt;p&gt;在Windows中,如果想要将某个bat或者exe作为Windows服务,允许其自启动, 有很多方法, 比如使用sc命令,或者搜索关键字instsrv/srvany等.&lt;/p&gt;

&lt;p&gt;有很多方法,本文简单介绍NSSM, 步骤如下, 访问链接: http://nssm.cc/download 下载最新版的NSSM. cmd命令行启动nssm.exe, 注意需要命令行启动.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nssm install 服务名
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;然后就是傻瓜式操作, 选择我们需要注册的bat/exe文件, 点击Install Service即可.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/aizya/aizya.github.io/master/assets/nssm.png&quot; alt=&quot;nssm&quot; /&gt;&lt;/p&gt;

&lt;p&gt;最后打开Windows管理服务,就可以看到我们新添加的服务了. 如果需要设置自启动,那么可以在管理界面自行配置.&lt;/p&gt;

&lt;p&gt;具体配置参照官网.&lt;/p&gt;

&lt;h1 id=&quot;参考链接&quot;&gt;参考链接&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;http://nssm.cc/usage&lt;/li&gt;
  &lt;li&gt;http://www.chengwenit.com/blog/index.php/archives/159/&lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Sun, 09 Aug 2020 00:00:00 +0800</pubDate>
        <link>http://aizya.github.io/windows/2020/08/09/How-to-set-bat-as-windows-service/</link>
        <guid isPermaLink="true">http://aizya.github.io/windows/2020/08/09/How-to-set-bat-as-windows-service/</guid>
        
        <category>Windows</category>
        
        
        <category>Windows</category>
        
      </item>
    
      <item>
        <title></title>
        <description>&lt;h1 id=&quot;前提概述&quot;&gt;前提概述&lt;/h1&gt;

&lt;p&gt;最近, 客户的服务器一直崩溃, 查看日志,只能知道是内存溢出, 但是并不知道具体是哪里出现了溢出.&lt;/p&gt;

&lt;p&gt;从网上找了一下, JDK本身就提供了一系列的分析工具,在Linux上,就是一些脚本.&lt;/p&gt;

&lt;p&gt;譬如: jps, jstack , jmap等等.&lt;/p&gt;

&lt;p&gt;以公司的服务器举个例子, 将jmap的dump过程记录下来. 其实还是有很多坑的.&lt;/p&gt;

&lt;p&gt;第一步,登录服务器, 直接运行jps. 发现命令没有找到, 这是因为环境变量没有配置好,所以命令找不到..  没关系, 先找找jdk安装在哪?&lt;/p&gt;

&lt;p&gt;于是,引出了第一个问题, jdk安装在哪?&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;1. which java  -&amp;gt; /usr/bin/java
2, ll /usr/bin/java  -&amp;gt; /etc/alternatives/java
3. ll /etc/alternatives/java -&amp;gt; /opt/jdk1.8.0_91/bin/java 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;这样就找到了jdk的安装位置…然后也就知道jmap的位置了.&lt;/p&gt;

&lt;h1 id=&quot;jmap-初识&quot;&gt;jmap 初识&lt;/h1&gt;

&lt;p&gt;jmap的使用,直接使用jmap –help就可以查看.&lt;/p&gt;

&lt;p&gt;一般使用的最多的方式:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;jmap -dump:format=b,file=heap.hprof PID
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;其中PID表示需要dump的java的ID, 这个ID可以使用命令jps进行查看:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;jps -l

[root@pldv ~]# /opt/jdk1.8.0_91/bin/jps -l
27169 org.apache.zookeeper.server.quorum.QuorumPeerMain
27250 /data/app/wildfly/jboss-modules.jar    (这个是我们能够用上的,应用程序的PID)
27494 kafka.Kafka
9277 sun.tools.jps.Jps
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;下面开始了:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;jmap -dump:format=b,file=heap.hprof 27250
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;然后突然就报错了:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;27250: well-known file is not secure
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;网上一搜,发现需要使用该进程的创建者进行dump操作,所以要去找找,这个PID对应的进程是谁开启的.&lt;/p&gt;

&lt;p&gt;问题又来了,怎么根据进程PID,查看进程的创建用户. 比较笨的方式就是,使用top命令,去查看top命令显示的PID对应的USER名称.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;[root@pldv ~]# top
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                           
27250 wildfly   20   0 18.892g 2.878g  38972 S   2.3 18.6  58:02.58 java   
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;还有一种方式, 可以通过查看: /tmp/hsperfdata_$USER/$PID, 在我这里,$USER可能表示root或者wildfly,&lt;/p&gt;

&lt;p&gt;所以我需要查看 /tmp/hsperfdata_root/27250 或者/tmp/hsperfdata_wildfly/27250 这个文件是否存在,&lt;/p&gt;

&lt;p&gt;如果存在,就表明这个PID是属于哪个用户的,其实道理都相同的.&lt;/p&gt;

&lt;p&gt;知道用户是谁之后,我又自然而然的切换到对应的用户下面去执行dump操作:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cd /opt/jdk1.8.0_91/bin/ 
./jmap -dump:format=b,file=heap.hprof 27250
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;发现如下错误:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Dumping heap to /opt/jdk1.8.0_91/bin/heap.hprof ...
Permission denied
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;然后我想当然的在命令前面加了个sudo:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;sudo ./jmap -dump:format=b,file=heap.hprof 27250
==&amp;gt;&amp;gt;&amp;gt;
[sudo] password for wildfly: 
wildfly 不在 sudoers 文件中。此事将被报告。
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;提示我输入wildfly的密码, 为此,我又修改了一下wildlfy的密码… 不知道会不会影响hudson的自动编译.&lt;/p&gt;

&lt;p&gt;然后我根据提示,又在/etc/sudoers文件中,添加了wildfly用户,具体添加方式看文章最后的相关链接.&lt;/p&gt;

&lt;p&gt;需要注意一点: 在保存的时候,需要使用: wq! 而我习惯了使用: x 进行保存. 所以一直失败….&lt;/p&gt;

&lt;p&gt;添加完成之后,我继续执行上一个命令,发现这个问题又出现了:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;27250: well-known file is not secure
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;于是我心想,这他妈不是一个死结吗, 不加sudo,提示权限不允许, 加了,又说要使用wildfly进行操作. 草…&lt;/p&gt;

&lt;p&gt;在这里卡了很久, 半夜突然想起来,,,这其实是个很蠢的问题,我为什么一定要在/opt/目录下做这些操作呢?????…..&lt;/p&gt;

&lt;p&gt;/opt属于root组,本来就拒绝访问…&lt;/p&gt;

&lt;p&gt;切换到wildfly家目录, /data/app/,执行一下命令:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;root用户下:
sudo -u wildfly /opt/jdk1.8.0_91/bin/jmap -dump:format=b,file=heap.hprof 27250
wildfly用户下:
/opt/jdk1.8.0_91/bin/jmap -dump:format=b,file=heap.hprof 27250
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;直接ok了…&lt;/p&gt;

&lt;p&gt;我的天,困扰我这么久的问题,就一下解决了…. 剩下的就是如何分析jmap生成的dump文件…&lt;/p&gt;

&lt;p&gt;睡觉….&lt;/p&gt;

&lt;h1 id=&quot;相关链接&quot;&gt;相关链接&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;http://lkf520java.iteye.com/blog/1560686&quot;&gt;为什么会”well-known file is not secure” ?&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/9100149/jstack-well-known-file-is-not-secure?rq=1&quot;&gt;jstack - well-known file is not secure&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.cnblogs.com/mrcln/p/6117267.html&quot;&gt;linux用户不在sudoers文件中&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://zhidao.baidu.com/question/1819360191513980668.html&quot;&gt;为什么会”well-known file is not secure&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Sat, 08 Aug 2020 12:39:28 +0800</pubDate>
        <link>http://aizya.github.io/2020/08/08/2018-11-22-How-to-use-jmap/</link>
        <guid isPermaLink="true">http://aizya.github.io/2020/08/08/2018-11-22-How-to-use-jmap/</guid>
        
        
      </item>
    
      <item>
        <title>CentOS设置定时任务</title>
        <description>&lt;h1 id=&quot;如何安装crontabs&quot;&gt;如何安装crontabs&lt;/h1&gt;

&lt;p&gt;第一步，安装crontabs：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;yum -y install crontabs
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;这一步在Docker上可能会出现问题，如果出现了 Errno 14 Couldn’t resolve host xxxx 的情况，那么可能是服务器的DNS设置的问题，可以尝试在/etc/resolv.conf中添加不同的nameserver， 诸如: 8.8.8.8&lt;/p&gt;

&lt;p&gt;虽然不一定能解决问题，但是至少是一种方向。 具体问题具体看待吧。&lt;/p&gt;

&lt;p&gt;安装完成之后，可以使用以下命令：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
查看crontab服务状态：service crond status
手动启动crontab服务：service crond start
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h1 id=&quot;如何使用crontabs&quot;&gt;如何使用crontabs&lt;/h1&gt;

&lt;p&gt;设置定时任务的方式有以下几种：&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;直接使用命令： crontab -e 添加对应的任务&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;编辑 /etc/crontab文件，然后更改，在编辑该文件时，有具体crontabs的使用方式&lt;/p&gt;

    &lt;pre&gt;
     # For details see man 4 crontabs

     # Example of job definition:
     # .---------------- minute (0 - 59) 【*表示每分钟执行】 
     # |  .------------- hour (0 - 23) 【*表示每小时执行】
     # |  |  .---------- day of month (1 - 31) 【*表示每天执行】
     # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ... 【*表示每月执行】
     # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
     # |  |  |  |  |
     # *  *  *  *  * user-name  command to be executed 【表示待执行的脚本或者是命令】
 &lt;/pre&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;那么，针对我而言，需要定时删除服务器上的/tmp文件目录，脚本放在/usr/local/bin/下：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;#!/bin/bash
   
rm -rf /tmp/*
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;crontabs书写方式：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;# 表示每天早上4：25 定时执行这个rmtemp脚本
25 4 * * * /usr/local/bin/rmtemp

# 25 4 * * * rm -rf /tmp/*
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;然后重新加载定时任务即可。&lt;/p&gt;

&lt;h1 id=&quot;总结&quot;&gt;总结&lt;/h1&gt;

&lt;p&gt;定时任务如果涉及到删除操作，一定要事先检查一下脚本，一定要写的十分规范。 并且针对不同版本的Linux服务器，crontabs的使用上可能会存在些许差异。 因此，需要根据具体情况，查找具体的方案。 本文只是为了记录crontabs的基本使用，其实很简单。&lt;/p&gt;

&lt;h1 id=&quot;参考链接&quot;&gt;参考链接&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cnblogs.com/wt645631686/p/6868672.html&quot;&gt;CentOS Crontab(定时任务)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://yq.aliyun.com/articles/553597&quot;&gt;yum 安装时错误 Errno 14 Couldn’t resolve host 解决办法&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Sat, 27 Apr 2019 00:00:00 +0800</pubDate>
        <link>http://aizya.github.io/linux/2019/04/27/CentOS-crontab/</link>
        <guid isPermaLink="true">http://aizya.github.io/linux/2019/04/27/CentOS-crontab/</guid>
        
        <category>Linux</category>
        
        
        <category>Linux</category>
        
      </item>
    
      <item>
        <title>Docker容器怎么支持中文</title>
        <description>&lt;h1 id=&quot;docker显示中文乱码&quot;&gt;Docker显示中文乱码&lt;/h1&gt;

&lt;p&gt;Docker CentOS服务器不支持中文字符集, 所有的中文皆显示????乱码. 那么应该怎么办呢?&lt;/p&gt;

&lt;p&gt;第一步, 使用命令:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;locale -a    // 查看系统所有支持的语言包
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;如果没有发现&lt;strong&gt;C.UTF-8&lt;/strong&gt;或者&lt;strong&gt;zh_CN.utf8&lt;/strong&gt;, 那么就直接运行下面命令安装语言包:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;yum -y -q reinstall glibc-common
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;再运行locale -a,发现并没有任何变化.&lt;/p&gt;

&lt;p&gt;问题的根本原因出在Centos默认镜像的/etc/yum.conf里面有一句:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;override_install_langs=en_US.utf8 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;删除这句再运行&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;yum -y -q reinstall glibc-common 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;就好了.&lt;/p&gt;

&lt;p&gt;最后一步: 让中文生效, 需要更改配置文件 /etc/profile, 然后增加如下一句:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;export LANG=&quot;zh_CN.utf8&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;然后: source /etc/profile即可.&lt;/p&gt;

&lt;h1 id=&quot;参考链接&quot;&gt;参考链接&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.jianshu.com/p/d0c0140ce9e9&quot;&gt;docker centos 容器不支持中文字符集&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;The &lt;a href=&quot;https://www.rpmfind.net/linux/rpm2html/search.php?query=glibc-common&quot;&gt;glibc-common package &lt;/a&gt; includes common binaries for the GNU libc libraries, as well as &lt;strong&gt;national language (locale) support&lt;/strong&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Wed, 03 Apr 2019 00:00:00 +0800</pubDate>
        <link>http://aizya.github.io/docker/2019/04/03/How-docker-to-support-zh/</link>
        <guid isPermaLink="true">http://aizya.github.io/docker/2019/04/03/How-docker-to-support-zh/</guid>
        
        <category>Docker</category>
        
        
        <category>Docker</category>
        
      </item>
    
      <item>
        <title>VPN基础教学</title>
        <description>&lt;h1 id=&quot;什么是vpn&quot;&gt;什么是VPN&lt;/h1&gt;

&lt;p&gt;VPN又称之为虚拟专用网络，它的主要功能是在公用网络上建立专用网络，进行加密通讯。VPN又分为不同种类的,在使用客户端连接之前,需要询问&lt;strong&gt;VPN的类型&lt;/strong&gt;. 然后采用不同的连接方式.&lt;/p&gt;

&lt;p&gt;本文介绍常见的Cisco’s AnyConnect SSL VPN, 如果是此类VPN,那么该怎么连接???&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;使用Cisco’s AnyConnect客户端&lt;/p&gt;

    &lt;p&gt;通过 https://uci.service-now.com/kb_view.do?sysparm_article=KB0010201 下载客户端,然后安装.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;使用OpenConnect连接&lt;/p&gt;

    &lt;p&gt;脚本如下:&lt;/p&gt;

    &lt;p&gt;#!/bin/bash
 sudo openconnect ip地址:端口&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;使用Vpnc连接&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;常见问题&quot;&gt;常见问题&lt;/h1&gt;

&lt;p&gt;我在用1和3方案使用时都存在问题…方案1,无法连接,提示错误:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;The AnyConnect package on the secure gateway could not be located. You may be experiencing network connectivity issues. Please try connecting again
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;原因还未可知.&lt;/p&gt;

&lt;p&gt;采用方案三: 看不太懂,很多项客户没有提供. 详细情况查看链接,有时候再试试看.&lt;/p&gt;

&lt;h1 id=&quot;参考链接&quot;&gt;参考链接&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.jianshu.com/p/e66198ac22cb&quot;&gt;ubuntu上安装anyconnect步骤&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://blog.zzstudio.net/system/article_1228.html&quot;&gt;Centos系统使用vpnc连接cisco的vpn服务&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Wed, 06 Mar 2019 00:00:00 +0800</pubDate>
        <link>http://aizya.github.io/vpn/2019/03/06/How-to-connect-vpn/</link>
        <guid isPermaLink="true">http://aizya.github.io/vpn/2019/03/06/How-to-connect-vpn/</guid>
        
        <category>VPN</category>
        
        
        <category>VPN</category>
        
      </item>
    
      <item>
        <title>如何构建Gitlab</title>
        <description>&lt;h1 id=&quot;什么是gitlab&quot;&gt;什么是Gitlab&lt;/h1&gt;

&lt;h1 id=&quot;ubuntu如何构建gitlab&quot;&gt;Ubuntu如何构建Gitlab&lt;/h1&gt;

&lt;h1 id=&quot;docker如何构建gitlab&quot;&gt;Docker如何构建Gitlab&lt;/h1&gt;

&lt;h1 id=&quot;常见问题&quot;&gt;常见问题&lt;/h1&gt;

&lt;h1 id=&quot;gitlab的优缺点&quot;&gt;Gitlab的优缺点&lt;/h1&gt;

&lt;h1 id=&quot;参考链接&quot;&gt;参考链接&lt;/h1&gt;
</description>
        <pubDate>Wed, 06 Mar 2019 00:00:00 +0800</pubDate>
        <link>http://aizya.github.io/linux/2019/03/06/How-to-build-gitlab/</link>
        <guid isPermaLink="true">http://aizya.github.io/linux/2019/03/06/How-to-build-gitlab/</guid>
        
        <category>Linux</category>
        
        
        <category>Linux</category>
        
      </item>
    
      <item>
        <title>在任意目录下运行自定义脚本</title>
        <description>&lt;h1 id=&quot;如何在任意目录下运行自定义脚本&quot;&gt;如何在任意目录下运行自定义脚本?&lt;/h1&gt;

&lt;p&gt;一般而言,新建的脚本,需要先通过chmod命令,增加可执行权限. 但是运行的时候,一般都是通过”./脚本名”的方式运行.&lt;/p&gt;

&lt;p&gt;如果想要在电脑的任意目录下运行, 我之前的做法是将脚本放到”$HOME/bin”目录下. 今天突然想, 如果没有放到这个目录下,貌似也能运行..&lt;/p&gt;

&lt;p&gt;于是在网上查了下, 确实可以, 前提是需要配置一下环境变量, 将脚本存放的目录加入到$PATH路径下,其实这样一想就明白了, 比如我们安装JAVA的时候,也需要将$JAVA_HOME/bin目录加入到$HOME目录下. 这样全局就能使用JAVA中自带的一些脚本命令了.&lt;/p&gt;

&lt;p&gt;方式如下(可以修改/etc/profile或者是某个用户下的~/.bashrc或者 ~/.profile文件):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;export PATH=$PATH:/PATH/OF/SHELL
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;最后在source一下这个配置文件即可.&lt;/p&gt;

&lt;p&gt;这样就能够直接使用这个目录下的所有的脚本.&lt;/p&gt;

&lt;p&gt;以上.&lt;/p&gt;

&lt;h1 id=&quot;参考链接&quot;&gt;参考链接&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;a href=&quot;https://blog.csdn.net/a394268045/article/details/51985970&quot;&gt;在任意目录下使用某个shell脚本
&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Mon, 24 Dec 2018 00:00:00 +0800</pubDate>
        <link>http://aizya.github.io/shell/2018/12/24/How-to-use-shell-in-any-place/</link>
        <guid isPermaLink="true">http://aizya.github.io/shell/2018/12/24/How-to-use-shell-in-any-place/</guid>
        
        <category>Shell</category>
        
        
        <category>Shell</category>
        
      </item>
    
      <item>
        <title>Dart初识</title>
        <description>&lt;h1 id=&quot;从flutter到dart&quot;&gt;从Flutter到Dart&lt;/h1&gt;

&lt;p&gt;最近Flutter非常的火,作为一个热度只有三分钟的人, 肯定要看看这到底是个什么玩意…&lt;/p&gt;

&lt;p&gt;其实,移动端开发和我真没有什么交集,没有真正开发过APP, 但是依稀还记得自己步入这个行业的原因….都是那该死的Android…&lt;/p&gt;

&lt;p&gt;在我深入了解Flutter之前, 我了解到,它使用的主要语言是.. Dart..&lt;/p&gt;

&lt;p&gt;Dart.. 听都没听过…. 网上查了下,大概是Google开发的一门语言,起初的目的是为了替代JS, 但是目前看来,是没有可能了…&lt;/p&gt;

&lt;p&gt;其实我觉得这些多数都是噱头… 什么替代不替代,能帮助解决实际问题就是好的…&lt;/p&gt;

&lt;p&gt;好了不说废话了… 主要讲讲今天遇到的一些坑吧…&lt;/p&gt;

&lt;h1 id=&quot;安装配置dart&quot;&gt;安装配置Dart&lt;/h1&gt;

&lt;p&gt;其实网上有一大堆配置Dart的, 根本没有必要专门写一篇博客…但是今天,,,真的被坑死了…&lt;/p&gt;

&lt;p&gt;Dart的安装包实在太难找了…&lt;/p&gt;

&lt;p&gt;首先,第一点需要确定的, Dart目前有两个稳定版本, 版本1和版本2. 这二者之间的区别很大, 下午就是一直在找Dart2的安装包..&lt;/p&gt;

&lt;p&gt;参照这个链接安装并不行,,, 可能是因为我本机的Ubuntu有问题…&lt;/p&gt;

&lt;p&gt;所以我是直接下载安装包:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;https://www.dartlang.org/tools/sdk/archive
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;在浏览器中输入:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;https://storage.googleapis.com/dart-archive/channels/stable/release/2.0.0/sdk/dartsdk-windows-ia32-release.zip
https://storage.googleapis.com/dart-archive/channels/stable/release/1.24.3/sdk/dartsdk-macos-x64-release.zip
https://storage.googleapis.com/dart-archive/channels/dev/release/2.0.0-dev.69.5/sdk/dartsdk-linux-x64-release.zip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;然后解压缩,配置环境变量即可:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;vi /etc/profile

export PATH=&quot;$PATH:/opt/dart-sdk-2/bin&quot;

source /etc/profile
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;冒号后跟着你本机上dart-sdk的bin路径…. 你看,这个安装,太蠢了…&lt;/p&gt;

&lt;p&gt;至于如何使用Dart,我后面看看自己能坚持看下去么, 如果没崩,就会继续往下更…&lt;/p&gt;

&lt;p&gt;我使用IDEA开发, 以下教我们怎么在其中安装使用Dart:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;https://www.jianshu.com/p/fa275a08b083
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

</description>
        <pubDate>Sat, 22 Dec 2018 00:00:00 +0800</pubDate>
        <link>http://aizya.github.io/dart/2018/12/22/Dart-tutorial-of_1/</link>
        <guid isPermaLink="true">http://aizya.github.io/dart/2018/12/22/Dart-tutorial-of_1/</guid>
        
        <category>Dart</category>
        
        
        <category>Dart</category>
        
      </item>
    
      <item>
        <title>Linux静态IP设置</title>
        <description>&lt;h1 id=&quot;为什么要设置静态ip&quot;&gt;为什么要设置静态IP？&lt;/h1&gt;

&lt;p&gt;在工作中，为了防止IP经常性的发生变更，导致同事之间协作出现麻烦，一般都需要设置一个静态的IP。&lt;/p&gt;

&lt;p&gt;有同学就会问了，我没有设置静态IP，而我的IP也一直都没有变化啊。我默认使用的DHCP自动分配了一个IP，是不是这种方式生成的IP也属于静态IP呢？&lt;/p&gt;

&lt;p&gt;并不是。&lt;/p&gt;

&lt;p&gt;IP没有发生变化的主要原因是&lt;a href=&quot;https://blog.csdn.net/wangdk789/article/details/27052505&quot;&gt;DHCP的自动续约功能&lt;/a&gt;。&lt;/p&gt;

&lt;h1 id=&quot;ubuntu设置静态ip&quot;&gt;Ubuntu设置静态IP&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;使用vi修改以下文件：&lt;/p&gt;

    &lt;p&gt;vi /etc/network/interfaces&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;添加以下内容，根据实际要求来写，别闷着头乱抄：&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;pre&gt;
    auto eth0
    iface eth0 inet static
    address 192.168.6.84
    netmask 255.255.255.0
    gateway 192.168.6.1
    dns-nameserver 119.29.29.29 # 域名解析服务
&lt;/pre&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;重启网络，否则不生效&lt;/p&gt;

    &lt;p&gt;sudo /etc/init.d/networking restart&lt;/p&gt;

    &lt;p&gt;注意，如果出现了错误， 根据它的提示去做。查看它的日志。我碰到的问题是，未发现网卡eth0，因为我本地的网卡叫eno1.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;redhatcentos设置静态ip的方式&quot;&gt;RedHat/CentOS设置静态IP的方式&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;使用vi修改以下文件：&lt;/p&gt;

    &lt;p&gt;vi /etc/sysconfig/network-scripts/ifcfg-eth0&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;添加以下内容：&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;pre&gt;
    DEVICE=eth0    #网卡名
    BOOTPROTO=static #设置静态
    HWADDR=00:15:17:B2:DC:B5
    ONBOOT=yes
    IPADDR=192.168.6.84 #这个是设置的静态IP地址
    NETMASK=255.255.255.0
    GATEWAY=192.168.6.1 #网关
&lt;/pre&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;重启网络：&lt;/p&gt;

    &lt;p&gt;service network restart&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;总结&quot;&gt;总结&lt;/h1&gt;

&lt;p&gt;设置静态IP的方式有的时候不可取，因为它会长期的占用IP资源，但是很多时候又不得不去设置静态IP。因为每次SSH连接同事的电脑，他的IP地址都再变化，很烦的。&lt;/p&gt;

&lt;p&gt;至于设置的方法，都是从网上搬运的，如果存在问题，google一下。&lt;/p&gt;

&lt;h1 id=&quot;参考链接&quot;&gt;参考链接&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://blog.csdn.net/xiaohuozi_2016/article/details/54743992&quot;&gt;Ubuntu16.04下设置静态IP&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://blog.csdn.net/qq_708912805/article/details/52107982&quot;&gt;Linux设置静态ip后遇到的问题及其解决方案&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.jb51.net/article/100311.htm&quot;&gt;详解CentOs设置静态IP的方法&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://blog.csdn.net/wangdk789/article/details/27052505&quot;&gt;DHCP的IP地址租约、释放&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

</description>
        <pubDate>Wed, 01 Aug 2018 00:00:00 +0800</pubDate>
        <link>http://aizya.github.io/linux/2018/08/01/Ubuntu-Static-IP-Setting/</link>
        <guid isPermaLink="true">http://aizya.github.io/linux/2018/08/01/Ubuntu-Static-IP-Setting/</guid>
        
        <category>Linux</category>
        
        
        <category>Linux</category>
        
      </item>
    
      <item>
        <title>服务器时间的同步方式</title>
        <description>&lt;h1 id=&quot;为什么要进行服务器时间同步&quot;&gt;为什么要进行服务器时间同步？&lt;/h1&gt;

&lt;p&gt;没有什么玩意就百分之百精确的，尤其是计量时间的玩意，都会存在误差。&lt;/p&gt;

&lt;p&gt;对于服务器而言，时间误差就意味着失真，出现问题的风险就会增大。&lt;/p&gt;

&lt;h1 id=&quot;如何更改服务器时间&quot;&gt;如何更改服务器时间&lt;/h1&gt;

&lt;p&gt;一般情况下，如果服务器时间出现了问题，比如差了几个小时，那么，为了把时间调整回来，一般常常使用命令：&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;date -s &quot;yyyy-MM-dd HH:mm:ss&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;为了完成上面的操作，就需要我们跟校对手表一样，掐准了标准时间进行设置，这是普通方法，误差较大。&lt;/p&gt;

&lt;p&gt;并且，尽管更改了时候，还是会有问题，我们需要同步一下服务器硬件的时间。第一次听说硬件还有时间…&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;hwclock -w
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;以上，便完成了一个普通的时间矫正方法。&lt;/p&gt;

&lt;h1 id=&quot;如何对服务器时间进行同步&quot;&gt;如何对服务器时间进行同步？&lt;/h1&gt;

&lt;p&gt;使用ntpdate时间同步软件，对服务器时间进行同步。&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;安装ntpupdate：&lt;/p&gt;

    &lt;p&gt;yum install -y ntpdate&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;同步网络时间：&lt;/p&gt;

    &lt;p&gt;ntpdate time.nist.gov #参数为时间服务器&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;调整硬件时间：&lt;/p&gt;

    &lt;p&gt;hwclock -w&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&quot;参考链接&quot;&gt;参考链接&lt;/h1&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://www.cnblogs.com/itxiongwei/p/5556558.html&quot;&gt;如何让linux时间与internet时间同步(centos)&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;https://blog.csdn.net/u011391839/article/details/62892020&quot;&gt;CentOS设置系统时间与网络时间同步&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;
</description>
        <pubDate>Wed, 01 Aug 2018 00:00:00 +0800</pubDate>
        <link>http://aizya.github.io/linux/2018/08/01/Ubuntu-Date-Sync/</link>
        <guid isPermaLink="true">http://aizya.github.io/linux/2018/08/01/Ubuntu-Date-Sync/</guid>
        
        <category>Linux</category>
        
        
        <category>Linux</category>
        
      </item>
    
  </channel>
</rss>
