在 Debian Linux 里“压缩卷” - shrink partion

环境:Debian 9,例子中,将阿里云ECS云服务器默认的系统盘,40GB的/dev/vda1,划成30GB的/dev/vda1和10GB的/dev/vda2。

过程:

  1. df -h # 查看当前的磁盘使用情况,/dev/vda1 是40GB
    resize-2.png
  2. on-line shrinking not supported # 尝试直接运行resize2fs来压缩,提示错误,不允许对正在使用的分区进行压缩操作
    resize-3.png
  3. vi /etc/initramfs-tools/hooks/resizefs # 创建好脚本,复制好resize2fs

    #!/bin/sh
    
    set -e
    
    PREREQS=""
    
    prereqs() { echo "$PREREQS"; }
    
    case $1 in
     prereqs)
         prereqs
         exit 0
     ;;
    esac
    
    . /usr/share/initramfs-tools/hook-functions
    
    copy_exec /sbin/e2fsck
    copy_exec /sbin/resize2fs
    
    exit 0
  4. chmod +x /etc/initramfs-tools/hooks/resizefs # 添加执行权限
  5. vi /etc/initramfs-tools/scripts/local-premount/resizefs # 创建好脚本,在挂载/前进行resize2fs操作

    #!/bin/sh
    
    set -e
    
    PREREQS=""
    
    prereqs() { echo "$PREREQS"; }
    
    case "$1" in
     prereqs)
         prereqs
         exit 0
     ;;
    esac
    
    /sbin/e2fsck -yf /dev/vda1
    /sbin/resize2fs /dev/vda1 30G
    /sbin/e2fsck -yf /dev/vda1
  6. chmod +x /etc/initramfs-tools/scripts/local-premount/resizefs # 添加执行权限
    resize-4.png
  7. update-initramfs -u -v # 更新系统引导
    resize-5.png
  8. 重启系统后用 df 查看磁盘使用情况
    resize-6.png
  9. fdisk /dev/vda # 用fdisk删除vda1分区,再新建30GB的vda1分区和10GB容量的vda2分区
    resize-7.png
  10. rm /etc/initramfs-tools/hooks/resizefs /etc/initramfs-tools/scripts/local-premount/resizefs # 删除之前的启动脚本
  11. update-initramfs -u -v # 更新系统引导
  12. 重启系统后,用 fdisk -l 查看,可以看到相应的分区和容量信息
    resize-8.png

参考:https://serverfault.com/questions/528075/is-it-possible-to-on-line-shrink-a-ext4-volume-with-lvm

用微信小程序“深圳通”乘公交车

昨天从松枰村到光明新区人民医院附近的一个公司面试,出门时,我姐递过一张“深圳通”公交卡,说方便乘车,我没接,说试试手机上的“深圳通”扫码。

因为不熟悉线路,我是按手机地图里的导航来乘公交车的,去和回都转了一次公交车。其中三次是乘务员手持设备扫码,一次是前门自助设备扫码。自助扫码时,可能没对准扫码设备,车开了后才扫到,后边的一个小伙都比我先扫到。扣费情况,回来问了一下我姐,说是和实体卡的“深圳通”一样的计费标准(八折起,1.5小时内换乘额外优惠0.4元)。具体到我,去时花了2.8元,回时花了3.6元。单程约23公里,从单价且不考虑时间来看的话,公交车坐得挺值。

个人觉得,现在多数人出门不会忘记带手机,放到袋子里,付款时,手机比片式实卡“深圳通”好找,年轻人应该比较喜欢用微信小程序的“深圳通”来乘公交车,“扫码成功”。

使用方法也不难,在公交车上有贴二维码,乘务员有时也会指引乘客使用:发现 --> 小程序 --> 搜索“深圳通”

sz-tong-1.png
图1:"深圳通"交易记录

sz-tong-2.jpg
图2:乘务员教一个阿姨开始使用小程序“深圳通”

sz-tong-3.jpg
图3:这个年轻小伙主动请教乘务员怎么使用小程序“深圳通”

链接:https://www.shenzhentong.com/news/skyhui_101004003.html

逛天虹商场西丽店

人要吃饭吃菜,买菜买肉到市场。松枰村附近有菜市场,但我姐对天虹比较信任,说曾看到天虹的工作人员拒绝证件不齐的蔬菜入场。

最近的天虹是在西丽那,手机地图显示约有2.7公里。我们沿着大沙河边的人行道走,边走边聊,到天虹用了差不多一个小时。

tian-hong-1.jpg
图1:大沙河旁的松枰村三期经济适用房

tian-hong-2.jpg
图2:钓鱼的

tian-hong-3.jpg
图3:今天周日,家长带小孩玩水,玩沙的

tian-hong-4.jpg
图4:河这边到河那边的公园,石头条架的,方便过河

tian-hong-5.jpg
图5:这黄衫哥直接在河里走了

tian-hong-6.jpg
图6:茶光地铁站

tian-hong-7.jpg
图7:俩父子兜鱼,后边的小子站着不敢移动

tian-hong-8.jpg
图8:到天虹商场了

tian-hong-9.jpg
图9:有自助APP结算促销,满200送30元券。自己用“虹”领巾的APP扫商品条形码结账,自己数好件数,挺方便,基本上不用排队结账

tian-hong-10.jpg
图10:“一号土猪”和“瑞今黑猪”,四十多元一斤,今天8.5折

tian-hong-11.jpg
图11:散装上海青,相对实惠些,1.5元一斤,我姐说估计是水培的

tian-hong-12.jpg
图12:果蔬安全,“码”上知道,宣传

tian-hong-13.jpg
图13:也可以用APP下单,送货到家。听说满200元,一般顺丰快递2小时内送上门

当Linux里没netstat时,可以使用ss命令来查看当前的socket使用情况

在默认的Debian 9系统里,尝试输入 netstat -tunpl | grep :80 来查看是什么进程在使用80端口,但提示找不到这个命令。

ss-1.png

网上说netstat的软件包在一些新版本系统里已经弃用了,但可以使用 ss 命令来达到同样的目的,于是 man ss 后大概看了一下使用的方法和例子,在Shell里执行 ss -anp | grep :80 ,结果是差不多。

ss-2.png

参考:https://www.cyberciti.biz/tips/linux-investigate-sockets-network-connections.html

在Debian 9系统里安装nginx + php7-fpm + MariaDB

环境:Debian 9.4,nginx 1.10.3,php7.0.27, MariaDB 10.1.26

过程:

  1. apt update # 更新软件源
  2. apt upgrade # 更新软件版本
  3. apt autoremove # 自动删除一些“遗留”的不必要软件
  4. apt install nginx # 安装 nginx
  5. apt install php-fpm php-gd php-mysql php-mbstring php-curl php-xml # 安装 php 及相关组件
  6. 编辑默认的nginx站点配置文件/etc/nginx/sites-enabled/default,添加 index.php 类型的默认首页文件,注释掉ipv6地址的监听及启用php

         # Add index.php to the list if you are using PHP
         index index.php index.html index.htm index.nginx-debian.html;
    
         server_name _;
    
         location / {
                 # First attempt to serve request as file, then
                 # as directory, then fall back to displaying a 404.
                 try_files $uri $uri/ =404;
         }
    
         # pass PHP scripts to FastCGI server
         #
         location ~ \.php$ {
                 include snippets/fastcgi-php.conf;
         #
         #       # With php-fpm (or other unix sockets):
                 fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
         #       # With php-cgi (or other tcp sockets):
         #       fastcgi_pass 127.0.0.1:9000;
         }
  7. systemctl restart nginx # 重启 nginx 服务,以让更改生效
  8. apt install mariadb-server # 安装 MariaDB (mysql)数据库服务端
  9. 通过 mysql 命令行,创建一个新的mysql用户
    CREATE USER 'idbadm'@'localhost' IDENTIFIED BY 'meizi36829';
    GRANT ALL PRIVILEGES ON . TO 'idbadm'@'localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
  10. 上传或下载一个phpmyadmin,用新建的mysql用户名和密码登录,测试正常