Win 杂记C盘满了

去年装的新电脑,刚开始只买了一块2T的SSD。自作聪明给C盘分了100G觉得足矣。结果随后不到两个月就是无尽的红色警告 直到今天终于忍不了了。 之前因为存储焦虑(因为大学配的ITX只买了一块西数500G的,那真的是捉襟见肘的存储。游戏随玩随删) 这次配电脑没多久还买了一块二手16T希捷企业机械盘。买之前担惊受怕 买之后只能说(真香) 这里必须提醒。二手盘有风险,数据无价。我有多次备份的习惯,所以大胆入了,除了炒豆子有点吵,用着感觉还行。 解决方案 bb太多有点偏题,解决方案很简单。 右键我的电脑。有一个计算机管理(Manage) 打开存储->磁盘管理 可以看到下面是我的SSD 此时C盘右侧邻近的是我的D盘.F盘是从D盘压缩出来的 右键D盘 点击压缩卷(Shrink Volume). 不知道为什么我这里最多只能压缩出来640G 但是D盘我本身还有很多,这里一路Next.随后压缩出来的卷会显示未分配.我这里因为已经新建了F盘了 就不截图了,右键未分配进行新建卷即可 然后备份D盘的内容到F盘. [!TIP] 如果D盘大于F盘怎么办呢(哥们我全给删了.反正都是游戏) 哈哈备份走就好了 文件清空后对D盘 Delete Volume/ 删除卷 长达两个小时的安静 沃日 太麻烦了 一怒之下直接全部清空。重装。现在一块2T C盘 一块 16T E盘。舒服!!!!

March 22, 2025 · 1 min · 34 words · Ray

Win 常用开发环境安装

记上一次急躁的我为了扩C盘直接抛弃了D盘后。所有开发环境也被我删干净了,都在D盘。正好那就重新安装,顺便记录一下。 我主要用到的环境一般是python java和node 这里java因为许久未碰。我都把我JB系列的软件都删了,现在是cursor用户也足以。主要是常常会在公司打开接近十几个工作空间。五个桌面,轻量的vscode配合插件也足以 所以我首先安装miniconda,用来管理python环境 Conda Conda is an open source package management system and environment management system for installing multiple versions of software packages and their dependencies and switching easily between them. It works on Linux, OS X and Windows, and was created for Python programs but can package and distribute any software. 最初接触Python的时候还是 Python3.7,就是五年前的事情了。那时候对于Anaconda的安装都是模模糊糊的。后来也是摸爬滚打,像Python Java系列的依赖,觉得比C++真的容易太多了。 这里准备安装的是miniConda。顾名思义,mini版 这一类安装 建议参考官方文档,所以先放上链接miniconda/intstall 然后是我的安装步骤 诶,太久没装了吗。原来win直接装一个exe就一步到位了 尬住了 那就装一下node吧 node 因为调试需求。node也会需要不同的版本。之前用的是nvm管理不同的版本,所以还是继续安装nvm 题外话好像也有人做了jvm 管理不同的jdk版本。不过之前都是手动切换 顶多也是java1.8和java十几 ...

March 21, 2025 · 1 min · 87 words · Ray

给ssh登录做一个通知

给ssh登录做一个通知 钉钉创建一个群。然后创建一个普通机器人。 这个思路是自己想的,随手搜了一下 真有佬做了.下面是链接 如何使用钉钉机器人通知接收服务器SSH登录提醒 - 阿豪运维笔记 根据佬的写法 后面再加点功能。最近忙的紧,先把这个脚本部署尝试 主要原理就是sshrc是SSH服务的一个特殊文件,它会在每次SSH会话建立时自动执行。 执行时获取一些信息,执行 POST 请求 到钉钉的 webhook 地址,群里的机器人就可以发消息了 注意关键词的设置 显示已折叠代码(70 行) 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 # 编辑/etc/ssh/sshrc文件 最后更新时间 2025-03-17 11:09:34 # 设置日志文件 LOG_FILE="/tmp/ssh_notification_debug.log" # 记录详细日志的函数 log_debug() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] [PID:$$] [SSH_TTY:$SSH_TTY] [PPID:$PPID] $1" >> "$LOG_FILE" } # 记录脚本启动 log_debug "脚本开始执行 ====================" log_debug "SSH_CLIENT: $SSH_CLIENT" # 获取登录者的用户名 user=$USER # 获取登录IP地址 ip=${SSH_CLIENT%% *} # 创建基于用户、IP和当前小时的锁文件名 # 这样同一IP同一用户每小时只会通知一次 current_hour=$(date +%Y%m%d%H) LOCK_FILE="/tmp/ssh_notify_${user}_${ip}_${current_hour}" GLOBAL_LOCK="/tmp/ssh_notification.lock" log_debug "检查锁文件: $LOCK_FILE" # 简化的锁定机制,兼容dash shell if [ -f "$LOCK_FILE" ]; then log_debug "本小时已经为用户${user}从IP${ip}发送过通知" echo "Welcome back. The administrator has already been notified of your login this hour." exit 0 fi # 创建锁定文件 touch "$LOCK_FILE" log_debug "已创建锁文件: $LOCK_FILE" # 获取登录的时间 time=$(date +%F%t%k:%M) # 服务器的IP地址和自定义名称 server='204-ray-server-in-mckj' # 修改函数声明语法,使其兼容Dash DingDingalarm() { log_debug "开始发送钉钉通知" local url="https://oapi.dingtalk.com/robot/send?access_token=钉钉token" local UA="Mozilla/5.0(WindowsNT6.2;WOW64)AppleWebKit/535.24(KHTML,likeGecko)Chrome/19.0.1055.1Safari/535.24" local res res=$(curl -XPOST -s -L -H"Content-Type:application/json" -H"charset:utf-8" "$url" -d "{\"msgtype\":\"markdown\",\"markdown\":{\"title\":\"$1\",\"text\":\"$2\"}}") if [ $? -eq 0 ]; then log_debug "钉钉通知发送成功: $res" echo "钉钉通知已发送,结果:$res" echo "Notification sent to admin." else log_debug "钉钉通知发送失败: $res" echo "钉钉通知发送失败,错误信息:$res" fi } # 使用Markdown格式美化通知内容 message="### 🔔 服务器登录通知 🔔\n\n**时间**:<font color='#FF5722'>$time</font>\n\n**服务器**:<font color='#2196F3'>$server</font>\n\n**用户**:<font color='#4CAF50'>$user</font>\n\n**来源IP**:<font color='#9C27B0'>$ip</font>\n\n**会话信息**:TTY=$SSH_TTY, PID=$$, PPID=$PPID\n\n> Please make sure to check if this login is expected." DingDingalarm "服务器登录通知" "$message" # 打印日志,通知管理员并告知操作将被记录 echo "The administrator has been notified. All actions will be logged." log_debug "通知完成,脚本结束 ====================" # 要定期清理锁文件,请使用以下命令设置cron作业(在root权限下执行一次): # echo "5 * * * * root find /tmp -name 'ssh_notify_*' -type f -mmin +60 -delete" > /etc/cron.d/clean_ssh_locks 小插曲 直接 cp 到 sshrc 中时报错 ...

March 13, 2025 · 2 min · 332 words · Ray

服务器初始化

服务器初始化 参考链接 https://www.ruanyifeng.com/blog/2014/03/server_setup.html https://hufangyun.com/2017/linux-init/ 第一篇阮一峰老师的,第二篇胡方运老师的, 主要内容可能与第二篇相似,希望以后我能进行完善,不要太过于臃肿也好。 针对于自己的个人习惯。也记录一个流程,以后配置服务器标准一点 刚购买完服务器要做的操作 这里就忽视安全组的问题了。因为之前买过几年。安全组的配置基本一致,我也不记得初始化啥样子了,如果进不去自己检查网络连接,或者网页进去也行 这里买的是阿里云的 99 一年,2c2g ubuntu24,3M 固定带宽。控制台启动后先重置root密码 然后远程登录 ssh [email protected] 进来看着原先的一串主机名眼睛花,改一手主机名 hostnamectl set-hostname <new-hostname> 然后重新登录就行了。 如果只是要改命令行提示符一串可以研究~/.bashrc和各种插件,关于美化命令行那也是水很深,我就喜欢傻黑粗的玩意儿 新账号 操作 Linux 系统任何时候尽量不使用 root 账户,毕竟权限太大对小白不是好事,有自知之明且要学一下好习惯,创建一个管理员账户 [[Linux-用户管理#新建用户]] 这里基本和文章开头贴的博客一致。我也创建admin 用户组 addgroup admin 添加新用户(ray) useradd -d /home/ray -s /bin/bash -m ray 上面命令中,参数 d 指定用户的主目录,参数 s 指定用户的 shell,参数 m 表示如果该目录不存在,则创建该目录。 接着,设置新用户的密码。 `passwd ray 将新用户(ray)添加到用户组(admin)。 usermod -a -G admin ray 接着,为新用户设定sudo权限。 接着,为新用户设定sudo权限。 sudo vim /etc/sudoers 找到下面这一行。 root ALL=(ALL:ALL) ALL ...

March 12, 2025 · 2 min · 271 words · Ray

Hello Blog

Hi there.This is my first rambling note. 笔记工具决赛 其实我从小时候写日记本开始就非常挑工具,我字写的不咋地,但是家里有一堆很好看的小本子。每一本上面都稀稀疏疏都记录了几篇日记,不超过一个月。看得出来真的很懒了。 有时候选本子就有点像是想激励一下自己。啊,这么好看的本子,得写日记了。就好像办健身卡前,啊,都付了钱了。不得不练了。但是如果这样非常有效的话也不会在我同时有着 Keep 包月会员和乐刻健身房包季会员的情况下一个季度胖 40 斤了 先记录下截止到目前为止。对我而言 出了决赛圈的工具。 先列一下我的 电子设备 matebook 14 macmini 3 windows company 给同事用了 windows home redmi k70 主要是写 markdown 文档,记录一些杂七杂八和开发日志或文档 1-3 都是经常在公司用着的。由于 windows 不适合长期开着。之前windows 作为主力办公 开着一周句柄爆多。卡的不能用。所以舔着脸叫领导换了 mac。现在就是在 mac 上写这篇笔记 在 windows 上我习惯使用 typora 配合图床写笔记。看情况导入语雀分享或者什么样。但是我发现 typora 实在是只能作为编辑器,有点太局部了 语雀又不适合做一个 经常能打开的编辑器(尤其是用的这两年崩了两次 如果是 vscode ,我敲代码也用 vscode ,写笔记也用。会疯(主要是觉得 不如 typora 写 md 方便,而且最近一个月用 cursor 量更大(AI 造福增删改查小子) Obsidian(真神) [[Obsidian 入门指东]] 其实曾经用过一段时间的 Obsidian。但是糊里糊涂了五年前的事情。笔记不多但是也全部丢了。当时主要卡在 git 同步笔记遇到不少问题。现在认知略微增加了一些。以前碰到的一些问题 都不算是问题 ...

February 5, 2025 · 1 min · 144 words · Ray