小豪
小豪

小豪

All Posts


利用Svn Hooks触发自动部署流水线

本篇博客主要探讨如何利用Svn Hooks触发自动部署流水线。在项目开发过程中,我们常常需要经历提交代码、集成开发平台更新、服务器远程构建更新等步骤。本文提出一种新的思路,即将前两步合并为一步,即提交代码后自动进行集成开发平台更新。为实现这一思路,我们需要找到一种可以触发集成开发平台构建的工具。本文首先调研了svn的hooks功能和基于apache开源的svn提交监听工具CommitMonitor,但由于权限和功能限制,这两种方法都被否决。最后,文章选择了TortoiseSVN提供的Hooks Script脚本,并通过编写Wscript脚本代码实现了自动触发集成开发平台更新。但该方法也存在一些问题,例如只能在TortoiseSvn的工具中提交才能触发,且集成平台构建完成后没有相关通知。尽管如此,这种方法仍有助于提高开发效率,减少更新构建时间。如何进一步优化这个流程,实现更自动化的部署流水线,值得我们进一步探讨。--GPT 4

svn automatic ci cd

SQL Server 死锁问题排查

本篇博客主要探讨了如何排查SQL Server的死锁问题。首先,文章提供了一个问题日志描述,展示了一个典型的SQL Server死锁问题的报错信息。然后,文章详细介绍了如何排查这个问题。它提供了查询哪些进程导致死锁的SQL语句,以及查询死锁原因的SQL语句。这些语句包括创建表格,插入数据,以及使用游标进行循环查询等操作。最后,文章提供了处理死锁问题的方法,即通过kill命令杀死导致死锁的进程。这篇文章不仅提供了一种实用的问题排查和处理方法,同时也展示了SQL语句的强大功能。那么问题来了,你是否了解SQL Server的死锁问题?你是否知道如何排查和处理这种问题?如果你不清楚,那么阅读这篇文章或许能够帮助你。--GPT 4

SQL Server

shell proxy via proxychains-ng

This blog post provides an in-depth guide on how to set up a shell proxy using proxychains-ng on GNU/Linux systems. It begins by explaining the need for a proxy to speed up access when visiting external websites or downloading content through a shell. The post then introduces proxychains-ng, a simple and convenient tool for this purpose, as an alternative to temporary solutions like 'export https_proxy'. The post proceeds with detailed instructions on how to download, compile, and install proxychains-ng. The steps include cloning the tool from GitHub, entering the downloaded folder, compiling the tool, and installing it along with the proxychains.conf configuration file. The final part of the blog post covers the configuration process. It explains how to view and edit the profile location, set up a SOCKS5 proxy and an HTTP proxy, and modify an alias in zsh. After following these steps, readers should be able to achieve faster access through a proxy. The blog post concludes by congra...--GPT 4

Proxy Shell

NFS Filesystem Mount

本篇博客主要讲述了如何在Linux和Windows之间使用NFS文件系统进行目录共享。文章首先详细介绍了Linux端的配置步骤,包括安装NFS服务器和实用程序、创建目录、绑定目录、编辑导出文件以及启动NFS服务器。接着,文章转向Windows端的配置,包括在控制面板中启用NFS服务、使用命令提示符挂载目录等步骤。文章的最后部分,作者列出了一些常见问题及其解决方案,如Windows连接挂载显示网络连接失败、在Windows创建文件显示无权访问等问题。这篇文章能为你提供一个关于如何在Linux和Windows之间使用NFS文件系统共享目录的全面指南。为了更好地理解和应用这些步骤,你可能需要回答以下问题:NFS文件系统在实际应用中有哪些优势和限制?如何解决在挂载过程中出现的权限问题?在不同操作系统间共享文件时,有哪些可能的安全风险?--GPT 4

Linux NFS Windows

Linux 部署clash的三种方式

本篇博客详细介绍了在Linux上部署Clash代理软件的三种方法。首先是Linux常规安装,包括下载文件、解压、配置、启动以及自启动的步骤,详细的命令行操作和配置文件内容都一一列出。其次是通过Docker部署,需要先在本地创建配置文件,然后编辑docker-compose配置文件并启动,最后通过网页访问。最后一种是通过flatpak安装Clash for Windows,只需简单的一行命令就可以完成。这三种方式各有优势,可以根据自己的实际情况选择适合的方式进行部署。那么,你更倾向于哪种部署方式呢?你觉得哪种方式更适合你的实际需求呢?--GPT 4

clash Linux

没有静态公网ip如何稳定访问家里的设备

本篇博客介绍了如何在没有静态公网ip的情况下稳定访问家里的设备。文章首先列出了实现这一目标的前置条件,包括Linux系统或者可以装docker的路由器、域名以及Cloudflare账号。接着,文章详细阐述了创建配置文件和使用Docker-compose运行的步骤。在创建配置文件的步骤中,作者给出了一个详细的配置文件模板,并对其中的参数进行了详细的解释。在使用Docker-compose运行的步骤中,作者提供了一个docker-compose.yaml文件的模板,并给出了运行的命令。文章最后指出,完成以上步骤后,你可以在cloudflare中看到一条ip域名映射记录,并且每五分钟更新一次,从而实现使用自定义的域名访问家里的设备。那么,你是否已经掌握了如何在没有静态公网ip的情况下稳定访问家里的设备呢?是否还有什么问题需要进一步的探讨呢?--GPT 4

DDNS IP Cloudflare

如何创建属于自己的博客

这篇博客主要探讨了如何创建自己的博客。首先,文章讲述了作者因为有道云笔记同步错误和分享知识的需求,决定创建自己的博客。作者首先选择了在博客园上创建博客,但在实际使用过程中,遇到了markdown图片保存、资料展示灵活和独立域名的问题。因此,作者决定自建博客。 在自建博客部分,作者详细介绍了通过Github Pages创建博客的步骤,包括在GitHub上创建username.github.io的仓库,部署Hexo,并访问username.github.io。接着,作者讲述了如何申请域名,包括在GoDaddy购买域名,通过cloudflare配置域名防护、CDN、域名服务器等,并在cloudflare的DNS配置中配置域名解析。 最后,作者提供了博客可以部署在其他网站的建议,包括heroku、vercel和Google Cloud Platform,并给出了他们的主要用途和优点。这篇博客是对创建和部署博客的全面指南,旨在帮助有同样需求的读者建立自己的博客。阅读全文后,你是否也想尝试创建自己的博客呢?--GPT 4


远程连接linux桌面的几种方式

本篇博客详细介绍了如何远程连接Linux桌面的几种方式。首先,为了解决无公网IP的问题,可以使用花生壳进行端口映射,但是它的网络速度和总流量有限制。其次,可以在Linux上安装xrdp并在花生壳开启3389端口映射,但是实际体验并不理想,画面卡断,操作不流畅。另一种方式是使用TeamViewer,但是在Linux端经常会掉线。还有一种方式是使用VNC进行远程连接,相应的操作步骤和命令在文章中有详细介绍。此外,文章还介绍了如何使用ZeroTier建立内部局域网,包括Linux端和Windows端的操作方法。然而,使用openssh for Windows作为代理转发内网的尝试并未成功。最后,文章介绍了使用Windows端口转发工具NATBypass的方法。这些方式各有优缺点,具体选择哪种方式需要根据实际情况和需求来决定。文章的最后提出了一个问题,那就是如何优化这些远程连接方式以提高效率和稳定性?这是一个值得读者深入思考和探索的问题。--GPT 4

Linux Remote

如何减少代码中的if else,设计模式实战

本文详细介绍了如何通过设计模式来减少代码中的if else,以实现更优的编码形式。首先,文章指出了过多的if else可能造成的问题,如不符合开闭原则,不符合面向对象编程,代码耦合度过高等。然后,文章提出了通过适配器模式和策略模式对代码进行优化的解决方案,通过将每一种流程抽取到单独的一个类里面,并使用依赖注入来注入所有实现,统一使用抽象类来调用。最后,文章通过单例模式进一步优化了代码,实现了每个流程都能自己注册到环境类中,增加新流程完全不用修改原来的代码,同时代码之间的耦合性也大大降低。但是,是否所有的优化都适合每种情况呢?或者说,我们是否有更好的方法来减少if else?这些都值得我们深入思考。--GPT 4

Java

用batch脚本自动更新部署构建系统

这篇博客详细介绍了如何使用batch脚本自动更新部署构建系统,以解决项目开发过程中频繁重复的部署操作所带来的时间消耗。文章首先抽象出了部署过程,然后通过两个优化步骤简化了这个过程。初始优化阶段,作者通过将远程服务器的svn仓库拉到本地,然后本地构建完成后直接将文件移动到远程svn仓库,省去了登录服务器和复制文件的操作。进一步优化阶段,作者提出了自动触发运维平台的构建,包括配置Jenkins用户token和触发事件,从而避免了手动操作。最后,作者展示了优化后的自动化部署流程,并强调了这种方式可以大大节约部署运维时间,使开发人员能更专注于业务开发,提高开发效率。那么,对于你来说,如何将这种自动化部署流程应用到你的项目中呢?又如何进一步优化这个流程以适应你的特殊需求呢?--GPT 4

DevOps Batch