通过SNI Proxy加速国内服务器的WordPress更新

相信很多在国内服务器搭建WordPress的同学都有过这样的烦恼:更新不成功,后台某些页面打卡非常慢,插件主题没法在线安装等等等等这些问题,而且如果你的服务器又因为某些因素不方便直接搭建$$r之类的软件来给它加速,每次手动下载安装包再上传安装会是一件非常头疼的事。

……

解决windows 无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。


文件权限出现了问题

下面是一些可用的命令行帮助恢复

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 取得目录和内容的所有权 可以将其范围缩小到要更改的特定项,具体取决于有多少项。
takeown /f C:\Windows\Web /r

# 授予自己完全的控制权 注意 %USERDOMAIN%\%USERNAME% 将自动替换为您的用户-所以这里无需在此替换任何内容
icacls C:\Windows\Web /grant "%USERDOMAIN%\%USERNAME%":(F) /t

# 恢复windows10默认的所有者
icacls c:\Windows\Web /setowner "NT SERVICE\TrustedInstaller" /t

# 删除授予的权限
icacls C:\Windows\Web /remove:g "%USERDOMAIN%\%USERNAME%":(F) /t

一种替代方法是保存和恢复ACL

……

解决WSL与windows的PATH环境变量冲突问题

如果在windows和wsl中都安装了python, 那么由于wsl的互交互特性, pienv的运行就会不太正常

以下是禁用互交互的步骤

WSL的终端中输入:

1
echo "[interop]\nenabled=false\nappendWindowsPath=false" | sudo tee /etc/wsl.conf

Powershell(以管理员身份运行)中输入: (以重启wsl)

1
2
net stop LxssManager
net start LxssManager

如果已知distro名, 可用wsl --terminate <distro名>终止特定的wsl distro

……

Android逆向-2 dalvik 指令集1

dalvik 指令集 1

dalvik 指令格式

1
基础字节码-名称后缀/字节码后缀 目的寄存器  源寄存器

说明:
名称后缀: wide 表示数据宽度位 64位
字节码后缀 : from16 表示的就是源寄存器为16位

……

Android逆向-1 dalvik字节码

1 .dalvik字节码

1 dalvik寄存器:

  • 32位: 所有寄存器
  • 64位: 使用两个相邻的寄存器

2 寄存器的命名法:

  • v : 局部变量寄存器 v0-vn 参数寄存器: vn-vn+m
  • p : 参数寄存器 p0-pn 变量寄存器 v0-vn

第一种

……

Emeditor可以用的激活码

Emeditor激活码

找来找去找不到可以用的
今天在网上找到一个

DMAZM-WHY52-AX222-ZQJXN-79JXH

Version 18.9.12
使用正常!

VMware Workstation 各系列激活码大全

VMware Workstation Pro 16 激活许可证

ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8

VMware Workstation Pro 15 激活码

UY758-0RXEQ-M81WP-8ZM7Z-Y3HDA
VF750-4MX5Q-488DQ-9WZE9-ZY2D6
UU54R-FVD91-488PP-7NNGC-ZFAX6
YC74H-FGF92-081VZ-R5QNG-P6RY4
YC34H-6WWDK-085MQ-JYPNX-NZRA2

VMware Workstation Pro 14 激活码

FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD

VMware Workstation Pro 12 激活码

5A02H-AU243-TZJ49-GTC7K-3C61N
VF5XA-FNDDJ-085GZ-4NXZ9-N20E6
UC5MR-8NE16-H81WY-R7QGV-QG2D8
ZG1WH-ATY96-H80QP-X7PEX-Y30V4
AA3E0-0VDE1-0893Z-KGZ59-QGAVF

VMware Workstation Pro 10 激活码

……

利用shell脚本检测网络状况实现电话或短信报警

腾讯云有语音接口 可以实现任务内容通知

https://console.cloud.tencent.com/sms

脚本如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#!/usr/bin/env bash

# /root/check/check.sh 脚本存放位置
# */5 * * * * /bin/bash /root/check/check.sh > /dev/null   cron命令

# 日志路径
LOGFILE=/root/check/check_ip.log

# 腾讯云语音appid
SDKAPPID="12345678"
# appkey
strAppKey="abcdefg"
# 语音模板
VOICE_TMP_ID=123456
# 通知的手机号
ALERT_PHONE=18888888888
# ping丢包触发百分比
GE_RATE=20

# 第一个参数为ping测试的ip
# 第二个参数为丢包率
# 第三个参数为通知的手机号
call_phone()
{
    # 模板: 接口{1}丢包率为{2},请在5分钟内处理!
    strMobile=$3
    strRand=$RANDOM
    strTime=$(date +%s)
    strSig="appkey=${strAppKey}&random=${strRand}&time=${strTime}&mobile=${strMobile}"
    sig=$(echo -n ${strSig} | sha256sum | cut -d " " -f 1)

    api_url="https://cloud.tim.qq.com/v5/tlsvoicesvr/sendtvoice?sdkappid=${SDKAPPID}&random=${strRand}"

    response=$(curl "${api_url}" \
        -H "Accept: application/json" \
        -H "Content-Type:application/json" \
        --data @<(cat <<EOF
{
  "tpl_id": ${VOICE_TMP_ID},
  "params": ["$1","$2"],
  "playtimes": 3,
  "sig": "${sig}",
  "tel": {
    "mobile": "${strMobile}",
    "nationcode": "86"
  },
  "time": ${strTime}
}
EOF
))
    echo ${response} >> ${LOGFILE}
}

# 第一个参数为 ping的ip
# 第二个参数为 失败切换的网卡名字
do_check()
{
    ip=$1 
    change_dev=$2
    date="`date "+%Y-%m-%d %H:%M:%S"`"
    lost_rate=`ping -c 8 -w 8 $ip | grep "packet loss" \
    | awk -F"packet loss" "{ print $1 }" \
    | awk "{ print $NF }" | sed "s/%//g"`

    if [ ${lost_rate} -eq 0 ] # 等于0
        then
            echo "network_ok 【${ip}】 【${date}】 " >> ${LOGFILE}
    elif [ ${lost_rate} -ge ${GE_RATE} ] # 大于等于10
        then
            echo "network_error loss 【${lost_rate}】 【${date}】 【${ip}" >> ${LOGFILE}
            # ip route change ${ip} dev ${change_dev}
            call_phone ${ip} ${lost_rate} ${ALERT_PHONE}
    else
        echo "network_check loss 【${lost_rate}】 【${date}】 【${ip}】 " >> ${LOGFILE}
    fi

}

IP_ARRAY[0]="10.3.3.2"
#IP_ARRAY[1]="10.3.3.2"

CHANGE_ARRAY[0]="wg1"
#CHANGE_ARRAY[1]="wg2"

for i in "${!IP_ARRAY[@]}"; do 
    check_ip=${IP_ARRAY[$i]}
    change_dev=${CHANGE_ARRAY[$i]}
    echo "check ip ${check_ip} change_dev ${change_dev}" >> ${LOGFILE}
    do_check ${check_ip} ${change_dev}
done

2019年1月7日更新 增加多用户报警

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/usr/bin/env bash

# /root/check/check.sh
# */5 * * * * /bin/bash /root/check/check.sh >> /dev/null

LOGFILE=/root/check/check_ip.log

# 腾讯云语音appid
SDKAPPID="12345678"
# appkey
strAppKey="abcdefghdawdawd"
# 语音模板
VOICE_TMP_ID=66666
# 通知的手机号
ALERT_PHONE[0]=16688868686
ALERT_PHONE[1]=13333333333
# 触发阈值 大于这个就会打电话报警
GE_RATE=5

# 第一个参数为模板的第一个参数 这里是网卡名称或者服务器所在地区
# 第二个参数为丢包率
# 第三个参数为通知的手机号
call_phone()
{
        # call_message="专线接口$1丢包率百分之$2"
        strMobile=$3
        strRand=$RANDOM
        strTime=$(date +%s)
        strSig="appkey=${strAppKey}&random=${strRand}&time=${strTime}&mobile=${strMobile}"
        sig=$(echo -n ${strSig} | sha256sum | cut -d " " -f 1)

        api_url="https://cloud.tim.qq.com/v5/tlsvoicesvr/sendtvoice?sdkappid=${SDKAPPID}&random=${strRand}"

        response=$(curl "${api_url}" \
                -H "Accept: application/json" \
                -H "Content-Type:application/json" \
                --data @<(cat <<EOF
{
  "tpl_id": ${VOICE_TMP_ID},
  "params": ["$1","$2"],
  "playtimes": 3,
  "sig": "${sig}",
  "tel": {
    "mobile": "${strMobile}",
    "nationcode": "86"
  },
  "time": ${strTime}
}
EOF
))
        echo ${response} >> ${LOGFILE}
}

# 第一个参数为 ping的ip
# 第二个参数为 失败切换的网卡名字
do_check()
{
        ip=$1
        change_dev=$2
        date="`date "+%Y-%m-%d %H:%M:%S"`"
        lost_rate=`ping -c 100 -w 100 $ip | grep "packet loss" \
        | awk -F"packet loss" "{ print $1 }" \
        | awk "{ print $NF }" | sed "s/%//g"`

        if [ ${lost_rate} -eq 0 ] # 等于0
                then
                        echo "network_ok 【${ip}】 【${date}】 " >> ${LOGFILE}
        elif [ ${lost_rate} -ge ${GE_RATE} ] # 大于等于10
                then
                        echo "network_error loss 【${lost_rate}】 【${date}】 【${ip}" >> ${LOGFILE}
                        # ip route change ${ip} dev ${change_dev}
            for index in "${!ALERT_PHONE[@]}"; do
                alert_phone_index=${ALERT_PHONE[$index]}
                call_phone ${change_dev} ${lost_rate} ${alert_phone_index}
            done
        else
                echo "network_check loss 【${lost_rate}】 【${date}】 【${ip}】 " >> ${LOGFILE}
        fi

}

#ping的网管
IP_ARRAY[0]="10.200.200.101"
#IP_ARRAY[1]="10.3.3.2"

#网关的名字
CHANGE_ARRAY[0]="上海端"
#CHANGE_ARRAY[1]="wg2"

for i in "${!IP_ARRAY[@]}"; do
        check_ip=${IP_ARRAY[$i]}
        change_dev=${CHANGE_ARRAY[$i]}
        #echo "check ip ${check_ip} change_dev ${change_dev}" >> ${LOGFILE}
    do_check ${check_ip} ${change_dev}
done