用 grml-live 制作 debian stable 的 iso 急救盘

需求:grml 当前官方可下载的版本是基于 debian 12/sid 构建的,如需 stable 的,怎么做呢?

尝试:

  1. 下载 grml64-full 的 iso 文件,因为里边有 grml-live 的命令
  2. 用 grml64-full 启动机子
  3. grml-live -s stable -c GRMLBASE,GRML_SMALL,AMD64 -o /srv/grml-live # 执行这条命令,就可以用 debian stable 来构建新的 iso 急救盘了
  4. 如需在 grub 菜单中添加内核启动的参数,例如设置静态IP,可添加形如:ip=144.172.126.97::144.172.126.1:255.255.255.0 这样的内容

参考:https://grml.org/grml-live/#deploy-on-debian

为 debian 系统所在的 / 分区调整大小 - e2fsck - resize2fs - 急救系统

需求:主机商安装的debian系统,默认绝大多数空间分配给了 / 分区,如 1.5TB。现在需要将 / 分区调整为 50GB。

步骤:

  1. 将机子从急救系统引导,即不挂载使用原硬盘上的分区
  2. e2fsck -f /dev/sda4 # 假设 /dev/sda4 是 debian 系统所在的 / 分区,先进行文件系统检查
  3. resize2fs /dev/sda4 50G # 压缩文件系统到50G
  4. cfdisk /dev/sda # 再通过cfdisk将 /dev/sda4 的分区调整到50G
  5. 退出急救系统,从硬盘的debian启动,检测是否调整分区成功

调整debian linux 根分区大小

批量添加用户 - iredmail - bash脚本

需求:自动生成用户名和密码,使用 iredmail 的脚本导入。
尝试:

#!/bin/bash
#For Loop to Read Three-expression

rm -rf /tmp/users.txt
rm -rf /tmp/users.sql

for ((i=1; i<=3; i++))
do
# echo "$i"
USER=$(strings /dev/urandom |tr -dc a-z0-9 | head -c8)
PWD=$(strings /dev/urandom |tr -dc a-z0-9 | head -c8)
DOMAIN="lan.anqun.org"

# echo $USER $PWD
# echo $USER '($PWD)'
echo $USER@$DOMAIN $PWD >> /tmp/users.txt
bash create_mail_user_SQL.sh $USER@$DOMAIN $PWD >> /tmp/users.sql
done

参考:

小虫子能蹦跳且会吐丝

昨天我买菜往家回,走着时无意瞥到上衣粘着个“东西”,它是淡黄、条状的。我以为是碎树叶之类的,想用手指弹开它。我凑近一看,它不是全直的,有个转弯,象只钩子。我再细看,它底部有几个小点粘在衣服的表面,哦,这是条小虫。我走到垃圾桶旁,从青菜叶里撕下一小片,打算用菜叶将小虫从衣服上拨下来。试了几次,没成功,它粘得很稳当。我尝试将菜叶平放得像张纸般,贴着衣服表面慢慢去刮。好不容易将小虫刮到菜叶上后,我正要将它连带着菜叶一起扔到垃圾桶。不料,我眼前瞬间一闪,它蹦回到我的衣服上,速度很快,我都没反映过来。我只好又重新刮,且我打算要快速地将菜叶扔到垃圾桶,不给它机会蹦跳回来。嘿嘿,我动作很快地完成了任务,菜叶扔进了垃圾桶。我正得意,但当我平伸出去的手还没收回来时,看到身前好像晃悠着一件小东西。我愣了一会,瞧清楚后,发现小虫子在我甩手扔菜叶时,迅捷地吐出了看不见的丝线,粘到我的手上,现在它正靠着这纤丝,在我面前荡着秋千呢。它会带毛,会“杜”人吗?我慌了,赶紧狠命地上下摆动手掌,要将这虫子震从“秋千”上震下来。果然,它经不起震,八足朝天地躺到垃圾桶的边沿上了,一动也不动。

使用 curl 批量向 iredmail 提交新邮箱用户和密码

需求:iredmail 免费版没有 api,除了官方带的工具外,有没其它方法可以批量创建账号呢?

尝试:可以使用 curl 来提交表单,用脚本循环提交。

##
# Configurations.
##

read -p "请输入iredmain管理台的登录网址URL,如 https://mail.anqun.org/iredadmin/login: " login_url
read -p "请输入iredmail的创建用户网址URL,如 https://mail.anqun.org/iredadmin/create/user: " create_url
read -p "请输入邮局的管理员用户名,如 postmaster@lan.anqun.org: " username
read -p "请输入邮局的管理员用密码: " password

read -p "请输入要添加用户的域名,如 lan.anqun.org: " domainname
read -p "请输入要添加用户的个数,如 100: " number

rm iredmail-users.txt
rm tmpcs.txt
rm cookie

# Path to temporary file which will store your cookie data.
cookie_path=cookie

action_url="$create_url/$domainname"

##
# Logic. Most likely you shouldn't change here anything.
##

curl -i -b $cookie_path -c $cookie_path -d "username=$username&password=$password" "$login_url"

curl -i -b $cookie_path -c $cookie_path -o tmpcs.txt --request GET "$action_url"

csrf_token=$(grep -oP '(?<=<input type="hidden" name="csrf_token" value=")[^"]*' tmpcs.txt)


for ((i=1; i<=$number; i++))
    do
        mailuser=$(strings /dev/urandom |tr -dc a-z0-9 | head -c8)
        mailpasswd=$(strings /dev/urandom |tr -dc a-z0-9 | head -c8)
        echo $mailuser@$domainname  $mailpasswd >> iredmail-users.txt

        data="csrf_token=$csrf_token&domainName=$domainname&username=$mailuser&newpw=$mailpasswd&confirmpw=$mailpasswd&cn=&preferredLanguage=en_US&mailQuota=1024&submit_add_user=Add"
        curl -i --cookie cookie --data "${data}" "$action_url"
done

参考:https://www.drupal.org/node/2045751