保持 SSH 连接

记录一些 SSH 相关的内容,经常使用。 SSH 是 Secure Shell 的缩写,是一个应用层的加密网络协议,它不只可以用于远程登录,远程命令执行,还可用于数据传输。 当然它由 ssh Client 和 ssh Server 端组成,有很多实现,Ubuntu 上就默认安装的 OpenSSH, Client 端叫做 ssh, Server 端叫做 sshd. OpenSSH 只用来做远程登录和命令执行。 免密登录 查看本地 ~/.ssh/ 目录是否有 id_rsa.pub,如果没有,在本地创建公钥 ssh-keygen -t rsa 一 Read more ...

2017-05-07 ssh , linux , git , github , gitlab

MySQL 命令记录

MySQL 命令行操作相关内容,防止遗忘。MySQL 常用命令记录,总结。 安装 Under Ubuntu sudo apt update sudo apt-get install mysql-server sudo mysql_secure_installation 如果安装过程中没有弹出设置密码的对话,那么可以在安装完成后执行: sudo mysql_secure_installation 来设置密码,及一些安全的设置。之后就可以用 sudo mysql -u root -p 来登录。 启动停止 MySQL 服务 可以使用如下 Read more ...

2017-05-04 mysql , database , linux

Dockerfile 基础镜像

首先随便看看 Python 的镜像 就能看到非常多的版本,这些版本怎么选择呢。 首先解释几个常见的名词,其实都是 Linux 的发行版本 Stretch Debian 9 Jessie , 指的是 Debian 8 Wheezy Debian 7 Alpine 轻型 Linux 发行版 其次基于不同版本系统制作的镜像自身大小都有区别,比较精简的 python:2.7-slim 可能也要比 python:2.7-alpine 来的大。 Read more ...

2017-05-02 linux , docker , dockerfile , docker-image

借助 scrapy-redis 实现 scrapy 分布式爬虫

最原始的 Scrapy 项目是只能将爬虫部署到单机上,如果要实现分布式爬虫就需要手动去维护一个待抓取的列表,那么 scrapy-redis 项目就是这样一个存在。 特性: 分布式抓取,可以部署多个 spider 实例,共享同一个 redis 队列 分布式后处理,抓取的内容会放到一个队列中,这样就意味可以开启足够多的实例来处理结果 提供了即插即用的组件,包括定时,去重,等等 Scrapy 的局限 Scrapy 已经能够满足大部分爬虫的需要,但是有一些场景 Scrapy 并不适用。 对于页面数量比较少的站点,并不需要 Scrap Read more ...


Linux 安装 VMware workstation 12

VMware Workstation 12 虚拟机,适用于 RHEL/CentOS 7, Fedora 20-24, Debian 7-9, Ubuntu 16.04-14.14 and Linux Mint 17-18. Prerequisites 确保系统 64 位 VMware 12 不支持 32 位 CPU 确保有 root 权限 安装 更新 apt-get update && apt-get upgrade # On Debian Systems 下载 wget 'http://www.vmwa Read more ...


在 Python 中使用 redis 作为任务队列 Python RQ 使用

在学习 Flask 时接触 flask-rq2,然后知道了 python-rq 因为之前使用过 Celery ,所以对 python-rq 倒也没有多大的困惑。因为 python-rq 只依赖于 redis,相较于 Celery 轻量很多,如果在 Flask 中不需要非常繁重的后台任务队列(比如只有发送注册邮件任务)可以考虑使用 python-rq,毕竟有 flask-rq2 为 Flask 度身定做,结合 Flask 要比 Celery 容易很多。 RQ (Redis Queue) is a simple Python library for Read more ...

2017-04-25 python , redis , queue , python-rq , flask-rq2

每天学习一个命令:tcpdump 命令行下抓包

tcpdump 是一个运行在命令行下的抓包工具,如果想知道网络中有什么在流通,那么 tcpdump 就是一个很好的工具。它允许用户拦截和显示发送或收到过程中网络连接到该计算机的 TCP/IP 和其他数据包。tcpdump 适用于大多数的类 Unix 系统操作系统(如 Linux,BSD 等)。类 Unix 系统的 tcpdump 需要使用 libpcap 这个捕捉数据的库就像 Windows 下的 WinPcap。 tcpdump 可以识别的协议有: ARP RARP ICMP TCP UDP IP IPv6 App Read more ...

2017-04-23 tcpdump , linux , network

Scrapy 学习笔记及简单使用

Scrapy 是纯 Python 实现的爬虫框架(scraping and crawling framework),可以非常轻松地提取网页结构信息。最初设计时 Scrapy 仅仅作为网页抓取工具,但因其功能强大,配置简单,逐渐的被扩大使用范围,也经常被用于以下方面: 数据挖掘 Data Mining 信息处理 information processing 历史信息存储 historical archival 检测及自动化测试 monitoring and automated testing 因为网上的教程已经非常详细了,这里就重点 Read more ...

2017-04-23 scrapy , python , crawler , spider , 学习笔记

使用 pyenv 管理 Python 版本

记录一下使用过程,留备以后使用。 pyenv 是 Python 版本管理工具。 pyenv 可以改变全局的 Python 版本,在系统中安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtual python environments 。所有的设置都是用户级别的操作,不需要 sudo 命令。 pyenv 的一个典型使用场景就是,比如一个老项目需要使用 Python 2.x ,而另一个新项目需要 Python 3.x 。而 virtualenv 主要是用来管理相同版本 Python 不同项目的包的依赖不同的问题, Read more ...

2017-04-22 python , pyenv , 经验总结 , dev

Redis 常用命令

Redis 是典型的 KV 数据库,通常所说的 Redis 数据结构指的是 Value 的数据结构,常用的数据结构有 String, Hash, List, Set, Sorted Set. 前三种类型不用多讲,几乎每种语言都存在,后两种 set 是单纯的集合, Sorted Set 是有序集合,在集合内可以根据 score 进行排序。Redis 的命令不区分大小写,但通常情况下使用大写以示区分。 几个常用网址: https://redis.io/commands https://redis.io/documentation 中文命令 Read more ...


最近文章

  • 试遍所有 Navidrome 客户端,我最终选择了 Narjo 我是一个对音乐播放体验有点执念的人。自从搭建了 [[Navidrome]] 自托管音乐服务器,我就开始了一段漫长的客户端寻觅之旅。在 iOS 上,我几乎把能找到的 [[Navidrome]] 客户端都试了一遍,甚至为了体验更好而付费购买了 [[音流]]。但最终,我还是删掉了它们,把 [[Narjo]] 固定在了屏幕上。
  • Trellis:让 AI 编码代理真正投入生产的框架 最近我一直在思考一个问题:AI 编码工具越来越多,但为什么每次切换工具或开启新会话,都感觉像是从零开始?我用 [[Claude Code]] 写了一段时间,又想试试 [[Gemini]] CLI,但每次都要重新解释项目背景、编码规范、当前任务进度。这种重复性的”上下文喂养”工作,慢慢变成了一种隐性负担。
  • tiptop:用图表重新定义命令行系统监控 最近在排查一台服务器的性能问题时,我习惯性地打开了 [[htop]],盯着那一列列滚动的数字,试图从里面读出 CPU 负载的变化趋势。说实话,数字本身没什么问题,但当你需要判断”过去几分钟内 CPU 是否有明显的周期性抖动”时,一屏幕的百分比实在不如一条折线来得直观。就在那个时候,我发现了 tiptop 这个工具,用了之后感觉有点相见恨晚。
  • PostHog:一站式开源产品分析平台
  • Claude Code /goal:让 AI 自主持续工作直到达成目标的新命令 用 [[Claude Code]] 写代码时,一直有一个令人微妙不适的摩擦:每当 Claude 完成一轮工作,控制权就回到了我这里,我需要再次发出指令,告诉它”继续”“再检查一遍”“还有这个文件没改”。对于那种需要跑很多轮才能完成的任务——比如把一个模块从旧 API 迁移到新 API 直到所有测试通过,或者逐文件重构某个目录直到符合统一规范——这个”人类中继”的环节就显得相当机械,本质上我只是在不停地按确认键。