python

debian phantomjs error while loading shared libraries: libfontconfig.so.1: cannot open shared

 debian error while loading shared libraries: libfontconfig.so.1: cannot open shared

解决办法

apt-get install libfontconfig1

吐槽

海淘第一次光荣缴税,效率是真不高.

 海淘ns,目前已经在路上走了11天,走的ems,奇葩的是ems官网竟然查询不到动态,

包裹卡在 进口海关留存待验 状态六天,最后在 https://t.17track.net/zh-cn 查到是被税了.

微信钱包->城市服务->境外邮件申报缴税->邮件缴税->输入单号,可以直接支付 (额外收取50服务费).

两个包裹一共税了500块,完全不按照 完税金额来,按照包裹价值收的15%.比完税金额整整多了一倍.

 

买了以后,国行就发布了….  2200 + 300(运费) +500(税) 这波血亏.

愚人愚语

今天博客搬家到大厂

 之前一直挤在去年黑五抢购的vps上. 硬盘只有5g 勉强装上lnmp. 线路也一般.

现在搬家到宇宙大厂上,感觉美美哒. 

Go

golang 利用信号监听保持主线程不退出

搞了个小脚本,最初用了死循环保持主线程不退出,后来发现CPU占用很高.最后用了如下办法

直接上代码吧.

package main

import (
"fmt"
"os"
"os/signal"
"syscall"
)

// 监听指定信号
func main() {
//合建chan
c := make(chan os.Signal)
//监听指定信号 ctrl+c kill
signal.Notify(c, os.Interrupt, os.Kill, syscall.SIGUSR1, syscall.SIGUSR2)
//阻塞直到有信号传入
fmt.Println("启动")
//阻塞直至有信号传入
s := <-c
fmt.Println("退出信号", s)
}

linux

Amazon 服务器 的pem文件转换为公钥.pub

pem转.pub
在Windows系统上就需要使用SecureCRT,Putty等工具,进行连接。但是AWS提供的XXX.pem文件,不能直接在这些工具里使用,需要做一些处理,才可以。
1、使用XXX.pem文件生成一个公钥文件XXX.pem.pub

$ ssh-keygen -y -f XXX.pem > XXX.pem.pub

服务器相关

lftp出现“Fatal Error: Certificate Verification: Not Trusted”问题解决

 在使用lftp运作运作时遇到提示“Fatal Error: Certificate Verification: Not Trusted”问题。

之前Kaijia一直使用lftp连接到SFTP服务器传输文件,未出现问题,本次连接到BuyVM的备份FTP就遇到了此提示。经过研究,大约是认为BuyVM备份FTP服务器addons01.frantech.ca的SSL证书是自签名的,因此不受信任,这便导致了lftp弹出错误提示。

Google了一下找到了Rajaseelan提供的解决方案,这个方案通过临时关闭lftp的安全证书验证功能以解决问题。基于此,Kaijia永久关闭了lftp的安全证书验证功能,方法如下。

登录到你的VPS,编辑/etc/lftp.conf,在文本的最后,加入一行:

set ssl:verify-certificate no

下次使用lftp时就不会再出现此问题了,当然需要注意的是,这种方法存在潜在风险,比如你错误地登录到一个黑客控制的FTP,或者你试图登录的服务被黑了,都可能导致密码泄露,所以登录前请确认登录的是正确的FTP。

电脑常见问题

记一次网络拓扑改造,I-120E超密获取,路由拨号改光猫拨号,光猫IPV6配置

房子里网络改造

需求:  用户终端 -> 路由器 -> 交换机 -> 光猫.

目标实现: 用户终端不变,  路由器作为AP使用,交换机扩展光猫网口,光猫拨号光电转换.

具体实现:

1.光猫超密破解

因为光猫型号挺多的,我这里只记录我自己的 联通: 设备型号: I-120E  硬件版本: U120E_V10 软件版本: BEL_UV05_120E

这一步最复杂了.管理员用户:CUAdmin 密码一般是: CUAdmin随机数字 

从光猫底部获取到普通用户和密码, 然后 打开 http://192.168.1.1 登录,点击管理 找到用户管理, 然后 F12 审查页面, 搜索 Password 后面就是密码了.

2.修改光猫桥接模式到自动拨号模式.

基本设置->LAN配置 -> LAN侧IP地址: 192.168.0.1 这样就可以和路由器的 192.168.1.1 错开,直接就可以区分访问 路由器和光猫

登录超级管理员用户后,点击基本设置->上行线路配置  , WAN连接列表 一般有两个,选择 2_INTERNET_R_VID_1065 ,

连接模式: 从桥接改为路由, 

全路由功能: 打上对勾.

WAN协议版本: 选择 IPv4&IPv6 ,
IPV6地址模式: SLAAC
获取前缀 打上对勾
IPV6Prefix Type: PD
用户名 输入 你的adsl账号
密码 输入 你的adsl密码
Keep Alive Time 50 (5~60)seconds
自动连接: AlwaysOn

3.路由器从拨号改为AP 并且修改 IPV6

路由信息: AC68U 固件版本:384.10

登录路由器后,选择 外部网络(WAN)
WAN 联机类型 选择 动态IP

左侧切换到:IPv6
联机类型 修改为 Passthrough

 

4.交换机直接接上线就OK了 

 

python

python 中多数据 list in 非常慢的问题

 一个数据分析的小脚本,刚开始一切正常,越往后数据越大的情况下,发现速度缓慢,最初怀疑文件读取和正则,加了日志输出发现卡在in这里.

这里使用的 list 来存放数据,因为要去重,所以使用了 in 来判断是否存在列表中.现在将list换为dict后解决.

只贴主要代码把.

getinfo = {}  #声明 dict

if not str in getinfo: #in这里不变
    getinfo[str] = ”

"\n".join(getinfo.keys()) #最后合并文本

linux, 服务器相关

Debian7和8 的可用源,解决apt-get update的404错误

 Debian 官方源失效了(太老放入存档了),导致更新和安装软件失败.

Debian7一键解决方法:

cp -r /etc/apt/sources.list /etc/apt/sources.list.bak;echo "deb http://archive.debian.org/debian/ wheezy main contrib non-free" > /etc/apt/sources.list;cat /etc/apt/sources.list;apt-get update;
 

 

其实就是把源修改为: http://archive.debian.org/debian/

发现的几个其他可用源,如果http://archive.debian.org/debian/太慢可以自己换换

# 阿里云的,目前可用,但可能是没同步好,过几天就和官方的同步了,就不行了.

http://mirrors.aliyun.com/debian/

# debian官方的存档

https://snapshot.debian.org/archive/debian/20190321T212815Z/

# 这里可以找到不少(其实只要点进去看看dists目录里有没有wheezy就知道了)

https://www.debian.org/distrib/archive

一键方案不明白的话,这是阿里云给的详细帮助,阿里云如果失效的话自己替换相关源的网址即可.

debian 7.x (wheezy)
编辑/etc/apt/sources.list文件(需要使用sudo), 在文件最前面添加以下条目(操作前请做好相应备份)

deb http://mirrors.aliyun.com/debian/ wheezy main non-free contrib
deb http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ wheezy main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib
 

debian 8.x (jessie)
编辑/etc/apt/sources.list文件(需要使用sudo), 在文件最前面添加以下条目(操作前请做好相应备份)

deb http://mirrors.aliyun.com/debian/ jessie main non-free contrib
deb http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ jessie main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib
 

服务器相关

debian调整swap交换空间并开机自动挂载

最近买了某家的vps,mysql经常挂掉,, 查日志 提示 内存不足… 然后排查了半天发现商家没有提供 SWAP .. 只能手动增加.

 1.获取root  [如果是root用户 可以免掉这一步]

xxxxxx@root:~$ su
密码:

2.创建swap文件夹

mkdir /opt/swap

3.创建初始化swap的空间大小 count=1G 这里要从新分配大小,要等待几分钟,根据自己的情况调整 红色部分,vps给个512就差不多了

dd if=/dev/zero of=/opt/swap/swapfile bs=1024 count=1000000

4.转换成swap文件

mkswap /opt/swap/swapfile

5.挂载或取消挂载

挂载: swapon /opt/swap/swapfile
卸载: swapoff /opt/swap/swapfile

6.free -h查看分区大小

root@root:/home/light# free -h
total used free shared buff/cache available
Mem: 11G 10G 170M 191M 668M 371M
Swap: 1G 244M 1G

7.开机启动后自动挂载swap,编辑/ets/tstab文件,添加如下红色内容就可以了

root@root:/home/light# nano /etc/fstab

# /etc/fstab: static file system information.
#
# Use ‘blkid’ to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/vda5 / ext4 errors=remount-ro 0 1
/dev/vda1 /boot ext2 defaults 0 2
/opt/sawp/swapfile swap swap defaults 0 0