centos 6 32bit 安装 node.js 最新版的方法

1   先清缓存

2 安装 工具 :  n

n 是一个node.js 的版本控制工具

 

3 : 用 n 来安装最新版

 

4  安装之后, 发现执行   node -v  显示的还是旧版 , 这是因为还需要关掉当前的  terminal, 新开一个

 

如何在 centos7 安装使用 sass

  • 首先安装 ruby ,  因为 sass是 ruby 的应用 

sudo yum install ruby 

  • 安装后执行

 

但是, 添加淘宝源时出错  

 

google后 换为  

 


  • 可以有四种方法 安装 sass

You can install and process Sass in a few ways, using:

1. Official Sass which requires Ruby    这种要先安装 ruby , 然后用ruby gem  工具安装

2. Node-Sass which runs on Node.js   ,  用npm 安装 node-sass

3. An Application Tool might include Sass   第三方程序

4 自己下载文件 , 不使用任何package manage 软件

 

这里选第四种 , 因为gem 已经找不到可用的源,  npm 封装的过于麻烦,最初的目的只是简单的把 scss 文件转换为  css

 

第一步, 去这个网址  https://sass-lang.com/install

点击  from github 的链接

因为是要装到  centos 7 64bit . 所以下载的  linux-x64

传到linux 机器以后, 解压:

tar xvzf dart-sass-1.22.10-linux-x64.tar.gz

进入解压后的 dart-sass 目录


下一步应该把此目录加到系统路径, 但之前先测试一下能不能转换 scss文件

在此目录新建 demo1.scss , 内容为

然后执行命令

 

发现转换成功

这一步参考 https://www.cnblogs.com/yemeishu/p/3790525.html


接着, 把当前目录加入到系统路径

 

  • 更多 sass 示例

https://www.toptal.com/sass/theming-scss-tutorial

 

参考文章

https://code.likeagirl.io/getting-started-with-sass-scss-972c266e96e7   

详细


如何用npm 实现同样的功能

https://sunlightmedia.org/using-node-sass-to-compile-sass-files-in-an-npm-script/


 

centos 7 , node.js 的local和global安装路径

  • 当执行

, sass到底被安装到了哪里去 ?

用这个命令查看

在本机, 是

所有全局的都安装到了这里

, 如果是local安装, 就在当时的文件夹下 的 node_modules 目录

npm list -g  显示所有全局的

npm list    显示所有当前本地的

learn from https://stackoverflow.com/questions/5926672/where-does-npm-install-packages

 

apache 的配置, 日志位置 for centos 7 64 bit

配置 :  /etc/httpd/conf/

日志

这两个是 找 错误日志和 access log ,  本机的结果是  /var/log/httpd

来源 :  https://blog.codeasite.com/how-do-i-find-apache-http-server-log-files/

如果 access_log 是空的 , 是因为  httpd.conf 的虚拟目录定义没加这句:

 

 

[转]单台服务器上用Apache的VirtualHost搭建多个Web站点

https://lipeng1667.github.io/2017/06/29/apache-virtualhost-multi-port/

 

注: 经测试, 在 centos7 机器上并不需要 这两句

只要 :

 

 

就可以,

修改完重启是 :

 

访问默认是  http://192.168.3.116

另一个:  http://192.168.3.116:8080/

  • http://192.168.3.116 无法访问

局域网其他机器 不能 http://192.168.3.116

但是本机可以 127.0.0.1

因为在 httpd.conf是这样定义的:

 

先看80端口是否打开了

显示是已打开

 

centos 内存泄漏调查

起因: 用c++做了一个调用ctp api 的程序, 放在 centos 6 32 位 Linux VPS上 ,

用crontab 定时运行 ,但是, 发现执行过几次之后,内存很快被占完

此后, 停止了这个程序和定时任务 ,把vps的内存从1g 升级为 2g


但是, 即使这样, 2g 内存还是随着时间的推移而逐渐减少 , 如果

reboot, 会恢复, 但这只是暂时的解决方法


在 ventos上执行这个命令:

来源 : https://serverfault.com/questions/257759/something-eats-all-memory-i-suspect-memory-leak-on-some-app-how-to-detect-wha

会发现 前10的内存占用程序有9个是 httpd

use mysql in centos machine by c++ , 实现定时建表,取数等功能

  • 确定centos 版本 ,用命令

结果是

也就是说  , 是 centos6


  •  看是32位还是 64位

结果为

所以是 32位的


  •  看 mysql 版本

显示

所以, 是 mysql  5.1.73


  • 先写一个最简单的显示mysql版本的程序

 

  • 如何编译

mysql 安装后, 会自带1个命令 ,有2个参数  一个是 :

它的输出结果是:

第二个是

输出:

 

所以, 刚才的程序就可以这样编译 :

 

来源: https://www.codingfriends.com/index.php/2010/02/17/mysql-connection-example/comment-page-1/

  • 然后再做一个显示数据库所有表的程序 , 来源同上

编译方法与之前的一样 , 如果把 这句

换为 :

即可实现建表

  • 以上只是 Mysql相关 ,如果与 ctp 合并, 参见:

http://www.notesoflyang.com/?p=2152

编译方法将改为

以下的程序实现了当把日期作为参数传进去之后 (20190805)

能自动建表并插数

  • centos 7 用 sleep 函数 加  #include <unistd.h>

此程序的问题是 cpu 占用过高 ,在centos 执行 :

发现占用率是 百分100 ,

因为原来的写法是 :

while(1) {}

改为  sleep(大整数)即可

看进程的方法来自 :

https://www.cyberciti.biz/faq/how-to-check-running-process-in-linux-using-command-line/


 

此外, 还存在的问题是内存泄漏, 随着程序的运行, 内存会很快耗尽 (经过观察, 不存在这个问题, 是程序一开始执行内存占用急增 , 过一阵就会恢复正常 )

检查内存泄漏的工具是   valgrind

安装方法 :

参拷:  https://stackoverflow.com/questions/22495744/how-to-install-valgrind-3-9-0-in-centos-5-5

安装后 :

执行


发现程序执行一段时间后会自己结束

是因为sleep过短的原因, 改为 sleep(26000) ,  约7个小时即可

 

 

  • 如何定时执行此程序并定时关闭

a) 因为程序运行在 美国虚拟机, 首先要知道当前的中国时间

来源 :  http://www.cplusplus.com/reference/ctime/gmtime/

编译方法 :

b) 要有一个 能实现cron trigger 的库 , 要能在 centos 运行的 非.net版本

一开始想用这个 :  https://stackoverflow.com/questions/3618499/c-c-api-to-decode-cron-style-timings

是c++程序可以调用的lib , 但是下载已不可用, 是 2013年的


或者可以用centos系统自带的crontab  , 定时执行  c++ 程序

https://blog.csdn.net/capecape/article/details/78515558

思路是 : 先写一个脚本判断时间,该执行还是该关闭程序

然后用 crontab 每小时执行脚本

 

如何在 bash 脚本判断时间 : https://unix.stackexchange.com/questions/395933/how-to-check-if-the-current-time-is-between-2300-and-0630

 

自动启动的脚本是这样的:

 

需要注意的是这句 :  dateStr=$(date -d ” + 24 hour” ‘+%Y%m%d’);

等号2测不能有空格 , 来源 :

https://stackoverflow.com/questions/9556517/variable-assignment-inside-a-case-statement-bash

此外, 用 nohup 来后台执行

让脚本可执行的方法是 :


如何自动停止

 

所以, 最终的脚本是这样的 :

 

 

 

 

  • centos crontab

如何查看现有定时任务, 新建任务, 见 :

https://tecadmin.net/crontab-in-linux-with-20-examples-of-cron-schedule/

我加了一个这样的任务:

每分钟执行此脚本, 但是 , 执行没有, 或者执行的结果在哪里看?

答案是 ;  https://stackoverflow.com/questions/28856326/crontab-simple-echo-not-running

如果要每小时, 就

  • 调试用到的命令行

 

  • 待解决的问题 :

a) 找一个读 config 文件的库

b) 自动建表时避开周末 及休市日, 这个要用到config

 

  • 参考文档

https://sandeepghai.wordpress.com/2011/08/07/linking-of-mysql-database-with-c-on-linux-machine/

Linking of MYSQL Database with C++ on Linux Machine


https://stackoverflow.com/questions/8896963/connecting-to-mysql-through-c

关于 how to link


http://zetcode.com/db/mysqlc/

代码编译不通过 , 原因未知

 

如何测量真实网速— iperf introduce

  • purpose :

测速 ,测网络连接

 

  • 安装

windows 去这里下载 :

centos 7 :

centos 6 32bit

How to know centos is 32 bit or 64 bit

 

在 centos 6 的安装步骤是 :

先安装  epel-release repository

然后再安装 iperf3

 

此方法来自    https://unix.stackexchange.com/questions/165916/trying-to-enable-epel-on-centos-6-and-it-wont-show-in-repolist

  • 在服务器端暂时关掉防火墙

 

  • on server side

开启一个端口监听

  • on client side

 

参数介绍 :

-u   :    UDP

-c    : server ip and port

-t : 测多久

-i :  显示的interval

如果不带 -u  , 就是tcp 连接

-b: 指定带宽 100M

 

  • reference :

http://www.slyar.com/blog/iperf-measure-network-performance.html

 

 

 

 

 

How to use OpenVPN to make multi player play lan game for example HOMM3

  • In my VPS ,  openvpn config file in :     /etc/openvpn

似乎 ipp.txt 没有作用, 用户的ip 和 ipp.txt 指定的不同

用户的证书文件在  /etc/openvpn/easy-rsa/keys

  • download key files and install openVPN client on machine

but not , the download file is only  “client1” ‘s certificate

  • copy unzipped key file into   openVPN—>setting—>config folder     (这里只的是Windows side )  , import .openvpn file
  • 注意, 如果是多client , 就要在 server 生成 多个client 的证书,如果多client用同样的client1的证书, 那么clients 的IP 也会一样

例如, client1 所需的证书有 :

如果要再添加一个用户, 还需要 client2.crt,  client2.csr, client2.key

添加client 的步骤是 :

1   goto

2 执行

source ./vars

./build-key newclient

然后对于其中几项, 在默认值的基础上做一些修改,比如修改name

然后 keys 文件夹就会出现 newclient 的三个文件

3 用新的  newclient三个文件 和新的 TeckAndOtherNotesOfLY2018.com.ovpn 替换之前client1 的 , 给 newclient用

这样 newclient就得到了不同的ip

 

3 ,新增 client 的步骤来自 :

https://serverfault.com/questions/229116/openvpn-add-clients-without-rebuilding-all-keys


 

但是 , 发现两个client之间不能互相 ping

发现是 windows firewall 的问题 , 停用

 

  • 问题 :

server ip 是哪个?       10.10.10.1   ,   见  /etc/openvpn/openvpn.conf


怎么证明2个机器已经在同一局域网 ?   能互相ping到


怎么测试 client 的速度    ,  在 server ping  client


openvpn server 的默认端口 (如果没有在 openvpn.conf 文件指定 ) :   udp  1194

 


openvpn 客户间的通讯是否经过  server

在  openvpn.conf 文件加上

然后重启openvpn server

未确认这样是否可以加快客户机之间的传输速度 , 此方法来自

https://serverfault.com/questions/736274/openvpn-client-to-client

 


如何判断  client-to-client 是 enable 还是  not enable   ,    注释掉就是  not enable


how to restart openVPN server


how to check  logs

 

  • 参考文章

https://openvpn.net/community-resources/how-to/#pki

https://www.cnblogs.com/irockcode/p/7587424.html

 

  • 示例配置文件

come  from

https://gist.github.com/deargle/ce70b597645dc7c7c9eaec40875faaf5

how to install shadow sock client on centos 7 x86_64

1  安装 pip 工具

2 安装 shadowsock 客户端

pip install shadowsocks

 

3

 

新建配置文件:

填写以下内容


 

4 启动

nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 &

 

5

运行 curl --socks5 127.0.0.1:1985 http://httpbin.org/ip,如果返回你的 ss 服务器 ip 则测试成功:

这里的 1985 假定是第三步的 local_port 

实际为 1080

 

6  Shadowsocks 是一个 socket5 服务,我们需要使用 Privoxy 把流量转到 http/https 上。

找到以下两句,确保没有注释掉

启动

7

配置 /etc/profile

编辑:

添加下面两句:

 

运行以下:

8  测试

 

如果能返回 html ,说明成功

注意: 这里能返回html只说明linux 代理成功, 浏览器还要另外设置代理

 

9  修改浏览器代理

for my case

firefox—>edit—>perfemence—> advance—-> connection

 

 


 

出处 :  https://brickyang.github.io/2017/01/14/CentOS-7-%E5%AE%89%E8%A3%85-Shadowsocks-%E5%AE%A2%E6%88%B7%E7%AB%AF/

 

但是有修改, privoxy 没有从源代码编译