春有百花秋有月

春有百花秋有月

夏有凉风冬有雪

推送(git push)操作在向 GitHub 发送数据时遇到了问题

您遇到的 Git 错误日志表明,推送(git push)操作在向 GitHub 发送数据时遇到了问题。具体错误信息如下:

error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly

这些错误通常与以下几个原因相关:

这部分显示了您提交的文件大小(54.45 MB)。Git 默认推送限制较小的文件,如果您上传的文件太大,可能会导致超时或断开连接。

解决办法:
• 您可以通过调整 Git 的 http.postBuffer 设置来增加上传限制。运行以下命令来增加缓冲区大小:

git config --global http.postBuffer 524288000

这将把上传缓冲区的大小设置为 500MB。

解决办法:
• 如果您的文件太大,您可能需要使用 Git LFS(Git Large File Storage)来管理大文件。您可以按照 GitHub 官方文档 设置 Git LFS 来解决这个问题。

网络问题:
• 有时网络中断或不稳定也会导致上传过程中断。您可以尝试重新提交或者在网络更稳定的环境下再试一次。

分支名称问题:
• 您的命令是 git push -u master master,看起来像是想将本地的 master 分支推送到远程的 master 分支,但 master 分支在 GitHub 上可能已经更名为 main。

阅读剩余部分 →

使用jVectorMap工具为typecho增加足迹功能

本文部署后的足迹地图如下:
https://313390.xyz/index.php/51.html

github参考地址:
https://github.com/HelloWuJiaYi/jVectorMap-Footprint

注意事项:

    # Map info
    location /map {
        index index.html;
        #try_files $uri $uri/ =404;
        add_header X-Frame-Options "ALLOWALL";
    }
<!--more-->
  • 2.修改index.html,可根据注释修改使用中国地图或者世界地图,然后增加自已的足迹点,足迹坐标可参考:
    https://jingweidu.bmcx.com/

    3.新建独立页面,引入如下代码:

    !!!
    <iframe style="max-width: 100%" 
                frameborder="no" 
                border="0" 
                marginwidth="0" 
                marginheight="0" 
                width="100%" 
                height="600px" 
                src="https://313390.xyz/map/index.html">                                        
          </iframe>
    !!!
  • 4.收工,访问新建的独立页面即可。

    阅读剩余部分 →

调整Mac book中Launchpad启动台的行、列数量

具体办法:

打开终端,复制并执行以下4行命令:

defaults write com.apple.dock springboard-columns -int 12
defaults write com.apple.dock springboard-rows -int 8
defaults write com.apple.dock ResetLaunchPad -bool TRUE
killall Dock
  • 说明:

    以上每行的含义:
    1、调整每一列显示图标数量,9表示每一列显示9个,数字部分可根据个人喜好进行设置。
    2、调整多少行显示图标数量,这里我用的是6,数字部分你也可以改成8或其他
    3、重置Launchpad
    4、重启Dock
  • 恢复默认设置的方法,在终端Terminal中执行以下4行命令(全部复制):

    阅读剩余部分 →
  • 控制typecho首页不显示全文,只显示摘要的方法

    虽然在Typecho的文章撰写里面可以使用

    <!--more-->

    来控制首页显示文章的内容,但有时候码完字后忘记添加了又需要进去编辑添加。为了能达到一劳永逸的效果,以下将采用修改Typecho模版来实现全局控制文章显示的内容:

    阅读剩余部分 →

    为typecho文中代码增加一键复制功能

    Update header.php,add codecopy,eg:

    vi /var/www/typecho/usr/themes/single/header.php

    在header之前增加如下js脚本:

    <script>
            // 在代码块右上角添加复制按钮
            document.addEventListener('DOMContentLoaded', initCodeCopyButton);
            function initCodeCopyButton() {
                function initCSS(callback) {
                    const css = `
                        .btn-code-copy {
                            position: absolute;
                            line-height: .6em;
                            top: .2em;
                            right: .2em;
                            color: rgb(87, 87, 87);
                        }
                        .btn-code-copy:hover {
                            color: rgb(145, 145, 145);
                            cursor: pointer;
                        }
                        `;
                    const styleId = btoa('btn-code-copy').replace(/[=+\/]/g, '');
                    const head = document.getElementsByTagName('head')[0];
                    if (!head.querySelector('#' + styleId)) {
                        const style = document.createElement('style');
                        style.id = styleId;
                        if (style.styleSheet) {
                            style.styleSheet.cssText = css;
                        } else {
                            style.appendChild(document.createTextNode(css));
                        }
                        head.appendChild(style);
                    }
                    callback();
                };
                function copyTextContent(source) {
                    let result = false;
                    const target = document.createElement('pre');
                    target.style.opacity = '0';
                    target.textContent = source.textContent;
                    document.body.appendChild(target);
                    try {
                        const range = document.createRange();
                        range.selectNode(target);
                        window.getSelection().removeAllRanges();
                        window.getSelection().addRange(range);
                        document.execCommand('copy');
                        window.getSelection().removeAllRanges();
                        result = true;
                    } catch (e) { console.log('copy failed.'); }
                    document.body.removeChild(target);
                    return result;
                };
                function initButton(pre) {
                    const code = pre.querySelector('code');
                    if (code) {
                        const preParent = pre.parentElement;
                        const newPreParent = document.createElement('div');
                        newPreParent.style = 'position: relative';
                        preParent.insertBefore(newPreParent, pre);
                        const copyBtn = document.createElement('div');
                        copyBtn.innerHTML = 'copy';
                        copyBtn.className = 'btn-code-copy';
                        copyBtn.addEventListener('click', () => {
                            copyBtn.innerHTML = copyTextContent(code) ? 'success' : 'failure';
                            setTimeout(() => copyBtn.innerHTML = 'copy', 250);
                        });
                        newPreParent.appendChild(copyBtn);
                        newPreParent.appendChild(pre);
                    }
                };
                const pres = document.querySelectorAll('pre');
                if (pres.length !== 0) {
                    initCSS(() => pres.forEach(pre => initButton(pre)));
                }
            };
    </script>
    阅读剩余部分 →

    acme网站证书更新

    /root/.acme.sh/acme.sh  --upgrade
  • 2.使用acme.sh更新服务器本地所有SSL证书
    /root/.acme.sh/acme.sh  --renew-all

    如果你的服务器有多个网站的SSL证书,而你只想更新其中一个网站的SSL证书,可以使用“-d 域名”参数,例如

    /root/.acme.sh/acme.sh  --renew -d domain
  • 二、自动更新

    • 1.编写自动更新脚本,将更新后的证书替换nginx中使用的证书

        #!/bin/bash
      
        # 定义变量
        ACME_HOME="/root/.acme.sh"
        CERT_TARGET_DIR="/etc/nginx/ssl"
        NGINX_SERVICE="nginx"
      
        # 停 Nginx
        echo "Stoping Nginx service..."
        systemctl stop "${NGINX_SERVICE}"
      
        # 更新所有证书
        echo "Updating all certificates..."
        "${ACME_HOME}/acme.sh" --cron --home "${ACME_HOME}"
      
        if [ $? -eq 0 ]; then
          echo "Certificates updated successfully. Processing each domain..."
      
          # 遍历所有域名目录
          for domain_dir in "${ACME_HOME}"/*_ecc; do
            if [ -d "${domain_dir}" ]; then
              # 获取域名
              domain_name=$(basename "${domain_dir}" | sed 's/_ecc$//')
      
              # 检查证书和密钥是否存在
              cert_file="${domain_dir}/fullchain.cer"
              key_file="${domain_dir}/${domain_name}.key"
      
              if [ -f "${cert_file}" ] && [ -f "${key_file}" ]; then
                # 确保目标目录存在
                target_dir="${CERT_TARGET_DIR}/${domain_name}"
                mkdir -p "${target_dir}"
      
                # 拷贝证书和密钥
                cp "${cert_file}" "${target_dir}/fullchain.cer"
                cp "${key_file}" "${target_dir}/${domain_name}.key"
      
                echo "Certificates for ${domain_name} copied to ${target_dir}."
              else
                echo "Certificate or key file missing for ${domain_name}. Skipping."
              fi
            fi
          done
      
          # 重启 Nginx
          echo "Restarting Nginx service..."
          systemctl restart "${NGINX_SERVICE}"
      
          if [ $? -eq 0 ]; then
            echo "Nginx restarted successfully. Certificates are now active."
          else
            echo "Failed to restart Nginx. Please check the configuration."
          fi
        else
          echo "Failed to update certificates. Check acme.sh logs for details."
        fi
    • 2.手动执行测试

      阅读剩余部分 →

    修改系统配置和v2ray配置支持fast-open和udp-relay

    查看系统是否支持fast-open

      sysctl net.ipv4.tcp_fastopen
  • 备份配置文件

      cp /etc/sysctl.conf /etc/sysctl.conf.bak
      vi /etc/sysctl.conf
  • 新增支持fastopen conf

      net.ipv4.tcp_fastopen = 3
  • 应用设置

      sysctl -p

    2.修改v2ray支持fastopen

      vi /etc/v2ray/config.json
  • 修改进站支持udp

      {
        "port": ****,
        "protocol": "dokodemo-door",
        "settings": {
          "address": "0.0.0.0",          // 捕获所有地址的 UDP 流量
          "port": 0,                     // 捕获所有端口的 UDP 流量
          "network": "udp",              // 指定网络类型为 UDP
          "timeout": 0,                  // 超时时间,0 表示不超时
          "followRedirect": true         // 允许重定向
        }
      }
  • 修改出站支持fastopen

    阅读剩余部分 →
  • debian&ubuntu info

    1.修改nginx欢迎页,一般默认路径为/usr/share/nginx/html/index.html

    by:onedrive/myser/index.html

    2.通过nginx代理静态文件,使用python上传文件:

    by:onedrive/myser/upload_service.py

    3.v2ray info

    by:onedrive/myser/v2ray/*

    阅读剩余部分 →

    mac下mysql8.0重置root密码

    1.进入安全模式

    cd /usr/local/mysql/bin
  • 获取权限,输入: sudo su 点击回车,输入电脑开机密码,点击回车;(此时输入的密码终端是看不到的,根据记忆输入即可);
    sudo su
  • 进入安全模式,输入:
    ./mysqld_safe --skip-grant-tables & 
  • **2.

    再次启动一个新的终端(之前那个放着不动)**

    mysql
  • 终端输入:
    use mysql
  • 设置root账户为空密码,终端内输入:
    UPDATE user SET authentication_string='' where user='root';
  • 刷新权限:
    flush privileges; 
  • 退出 exit 。
  • 3.设置新密码

    mysql -uroot -p 
  • 进入mysql数据库,输入:
    use mysql 
  • 设置新密码,输入
    alter user 'root'@'localhost' identified by '你期望的新密码'; 
  • 刷新权限,输入:
    flush privileges; 
  • 提示 Query OK, 搞定!
  • 退出 exit .
  • 4.新密码测试

    mysql -uroot -p
  • 输入刚才重置的新密码,显示Welcom to the MySQL…。
  • 5.重启 MySQL 服务

    阅读剩余部分 →

    Oracle cloud申请与R探长抢实例---后续

    脚本一直抢不到,在tg群中得知,需要等待放水,昨天账号升级成功,收到oracle官方邮件后,脚本自动抢机成功

    上周升级账号失败,这周重试,唯一区别就是本周使用chrome的无痕模式升的级,其它一切不变,卡使用的是申请时候的实体卡,这周升级一次成功提交申请,上午申请下午4点左右收到官方升级成功的邮件通知。

    mark一下。

    阅读剩余部分 →