08月16, 2022

Github Push 太慢随笔

git push太慢,研究一下github和翻墙。

为啥浏览器能发送请求,curl却失败?

可能的原因:因为浏览器进行了代理的配置,本地没有配置代理。

配置代理:https://www.cnblogs.com/zafu/p/10000188.html

相关操作:https://blog.csdn.net/weixin_44984664/article/details/108028704

两个还不错的翻墙原理帖子

帖子1

帖子2

开启代理为什么能访问google,但是ping不通

https://cn-sec.com/archives/722892.html

编写监听ClashX启动结束脚本

目的:ClashX启动时,能够增加配置http_proxy和https_proxy,ClashX结束时,能够删除配置http_proxy和https_proxy。

方法:

  1. 编写监听ClashX的脚本。

  2. crontab定时执行脚本。

#!/bin/sh
#注释:clashX启动,添加http_proxy;clashX关闭,清除http_proxy

LOG_FILE=/var/log/supervisor_clashx.log
function log() { 
  local t=$(date +"%F %X") 
  echo "[ $t ] $0 : $1 " >> ${LOG_FILE} 
} 

function check_process() { 
  if [ -z $1 ]; then 
    log "Input parameter is empty." 
    return 0    
  fi 
   
  p_num=$(ps -e | grep "$1" | grep -v "grep" | wc -l) 
  echo $p_num 
} 

declare -i ch_num 
p_name="ClashX" 
ch_num=$(check_process $p_name) 
sed -i "" "/export http.*/d" ~/.zshrc
echo 
if [ $ch_num -eq 0 ]; then 
    log "$p_name has stopped"
else
    log "$p_name is running"
    echo "export http_proxy=http://127.0.0.1:7890/" >> ~/.zshrc
    echo "export https_proxy=http://127.0.0.1:7890/" >> ~/.zshrc
fi 

注意事项:

  1. mac | cron 无法停止

  2. 使用 crontab -e 删除定时任务即可。

参考链接:

  1. https://juejin.cn/post/7044573860171087908

  2. https://blog.csdn.net/Errors_In_Life/article/details/72778816

  3. https://cloud.tencent.com/developer/article/1722336

编写实时更新githubIP地址脚本

目的:定时获取github域名对应的ip地址,更新hosts文件。

方法:

  1. 编写脚本。

  2. crontab定时执行脚本(需要root权限)。

#!/bin/sh
#注释 更新host文件 github
cat /etc/hosts | grep "# GitHub" -n | cut -f1,1 -d: | xargs -n2 sh -c 'sed -i "" "$1","$2"d /etc/hosts' sh
curl 'https://raw.hellogithub.com/hosts' \
  -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
  -H 'Accept-Language: zh-CN,zh;q=0.9' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Pragma: no-cache' \
  -H 'Sec-Fetch-Dest: document' \
  -H 'Sec-Fetch-Mode: navigate' \
  -H 'Sec-Fetch-Site: none' \
  -H 'Sec-Fetch-User: ?1' \
  -H 'Upgrade-Insecure-Requests: 1' \
  -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36' \
  -H 'sec-ch-ua: "Chromium";v="104", " Not A;Brand";v="99", "Google Chrome";v="104"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "macOS"' \
  --compressed >> /etc/hosts

注意事项:

Linux sed命令略有不同sh -c 'sed -i "$1,$2d" /etc/hosts' sh

参考链接:

  1. https://www.programminghunter.com/article/6935984840/

  2. https://qa.1r1g.cn/unix/ask/27095351/

  3. https://github.com/521xueweihan/GitHub520

本文链接:https://imyoyo.xyz/post/essay-of-git-push-slowness.html

-- EOF --

Comments