2021年7月15日星期四

懒人命令-(自定)

常用应用:

Apache2及Nginx的安装启动 参阅:Apache2及Nginx的安装启动
数据库安装及运行操作 参阅 安装mariadb数据库
安装Cloudreve 参阅:NAS运行常用管理命令
Frps/frpc客户端管理命令 参阅:NAS运行常用管理命令     Frp内网穿透使用
CHFS客户端管理命令 参阅: Chfs安装运行
安装Cloudreve 参阅:NAS运行常用管理命令
安装nextcloud 参阅: 安装nextcloud
安装openmediavault (仅限debian) 参阅:安装openmediavault
安装samba服务 参阅:samba服务器安装配置
安装Godns服务 参阅:GoDNS安装配置

常用命令:

#关机重启
shutdown -r now            立即停止然后重新启动系统
halt                                  最简单的关机命令
poweroff  立刻关机 
reboot                             重新启动【reboot命令重启动系统时是删除所有的进程,而不是平  稳地终止它们。因此,使用reboot命令可以快速地关闭系统,但如果还有其它用户在该系统上工作时,就会引起数据的丢失。所以使用reboot 命令的场合主要是在单用户模式。】
shutdown  -r  +1             系统在1分钟后关机并且马上重新启动
shutdown -h now            系统马上关机并且不重新启动
后台运行
示例:
disown  & ./sh_client_bot.sh
nohup & ./sh_client_bot.sh
 

#更新系统
sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

#依赖关系修复
apt --fix-broken install

#标记软件为自动安装
sudo apt-mark auto xxxxx

#清理系统垃圾:(按需要安装 sudo apt-get install aptitude )
sudo apt autoclean && sudo apt clean && sudo apt autoremove && history -c && dpkg -l |grep "^rc"|awk '{print $2}' |xargs aptitude -y purge

#curl命令安装
sudo apt install curl

#unzip命令安装
sudo apt install unzip

#清理系统日志
sudo find /var/log/ -type f -mtime +1 -exec rm -f {} \;
sudo find /var/log -mtime +1 -name "*.log" -exec rm -rf {} \;

快速清空日志
mkdir /tmp/del_path  #创建临时空目录
rsync --delete  -a -H -v  /tmp/del_path/  /var/log/   #删除/val/logs/下所有文件
mkdir /tmp/del_path && rsync --delete  -a -H -v /tmp/del_path/ /var/log/  &&  rm -rf /tmp/del_path

查看缓存的命令
free -m
清理系统缓存的命令
sync && echo 3 > /proc/sys/vm/drop_caches
sync; echo 3 > /proc/sys/vm/drop_caches 

echo 1 是释放页缓存
ehco 2 是释放dentries和inodes缓存
echo 3 是释放 1 和 2 中说道的的所有缓存

同时清除RAM缓存和交换空间
sync; echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf 'n%sn' 'Ram-cache and Swap Cleared' 

#screen简单使用,创建后台窗口,本次以update为窗口名字演示
screen -S update
#恢复后台窗口
screen -r update
#结束后台窗口
screen -S update -X quit

多个同名的screen会话,可以执行:screen -ls 查看对应会话的session_id,然后使用screen -D -r + session_id 进行恢复。
screen -D -r session_id
退出指定会话 screen -X -S + session id quit
screen -X -S session_id quit 

查看网络接口信息
ifconfig

查看正在使用的网卡名:
cat /proc/net/dev

#查看端口号及进程PID
lsof -i
#查看当前所有已经使用的端口情况
netstat   -nultp

查看实时流量
apt install iftop   #安装iftop
iftop -P

结束进程
ps aux     ##查找相应进程的PID
kill -9 PID   示例:kill -9 16261   

#创建计划任务
echo "*/30 * * * * root /opt/sh/freemem.sh" >> /etc/crondtab

#大内存专用,关闭swap分区:

swapoff -a

常用磁盘操作命令:

#查看磁盘分区情况
lsblk
df -lhT
#使用fdisk -l  查看硬盘
fdisk -l
查询硬盘使用情况
df -h 
#格式化磁盘分区为ext4
mkfs -t ext4  /dev/mapper/nas--vg-buckups

软件包安装卸载操作命令:

#安装软件包:
apt install xxxx
#卸载软件包:
sudo apt --purge remove  xxxxx
sudo apt autoremove  xxxxx

示例:
sudo apt --purge remove  hostapd

彻底卸载软件及配置文件:

1.第一步,常规卸载
sudo apt purge 软件名                  //卸载软件
2.第二步,清理一些不需要的文件
sudo apt autoremove               //自动清理一些程序
sudo apt autoclean                
3.第三步,删除不需要的配置文件
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 软件名
4.第四步,更新本地缓存
sudo apt update               //更新本地缓存文件
到此,系统中的软件卸载完毕。

文件目录操作:

#创建tar.gz压缩文件,如把/xxxx文件夹打包到/home/目录中,文件名为xxxx.tar.gz
tar -zcvf /home/xxxx.tar.gz  /xxxx
示例:
tar -zcvf /media/system.tar.gz  /media/system
tar -zcvf /media/boot.tar.gz  /media/boot

#解压tar.gz文件,如解压xxxx.tar.gz到文件所在目录
tar -zxvf  xxxx.tar.gz
解压tar.gz文件,如解压xxxx.tar.gz到/home目录
tar -zxvf xxxx.tar.gz.tar.gz -C  /home
示例:
tar -zxvf /media/system.tar.gz -C /media/system
tar -zxvf /media/boot.tar.gz -C /media/boot

#创建zip压缩文件,如把/xxxx文件夹打包到当前目录中
zip –q –r xxxx.zip /home/xxxx

解压zip并重命名(可选)
unzip xxxx.zip -d xxx

#新建目录
sudo mkdir /test

#删除目录或文件
rm -rf  /test/
rm  -rf  test

#移动文件,如移动xxxx 到/usr/local/下
mv -rf  xxxx   /usr/local/

#复制文件,复制xxxx 到/usr/local/下
cp -r xxxxx   /usr/local

#建立软链接,如 软链接  /home/test(真实目录)与  /test (软连接目录)
ln -s /home/test    /test

#设置目录用户组
chown www:www -R /home/xxxx
#目录下的所有文件与子目录执行相同的权限变更:
chmod -R 777 /home/xxxx/
#目录下的所有文件与子目录执行相同的所有者变更:
chown -R www:www  /home/xxxx

#设置文件属性
用chattr命令防止系统中某个关键文件被修改
chattr -i  xxxx

#开启BBR
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
echo "1" > /proc/sys/net/ipv4/ip_forward
sysctl -p

#备份还原指定目录
备份/xxx/cc目录到/media/x.tgz
tar -cvpzf /media/x.tgz xx/cc
示例:
tar -cvpzf /media/boot_backup.tgz   /media/boot
tar -cvpzf /media/system_backup.tgz   /media/system

还原目录,忽略覆盖提示, 指定目录 -C  /
示例:
tar xvpfz /media/boot_backup.tgz  -C  /
tar xvpfz /media/system_backup.tgz -C  /

#安装exfat支持
sudo apt install exfat-fuse exfat-utils

#设置硬盘休眠

修改/etc/hdparm.conf
文件内容末尾加上下面的配置 (请修改为自己的目录)

/dev/disk/by-id/usb-ST1000LM_024_HN-M101MBB_0000000000000033-0:0 {
acoustic_management = 127
apm = 192
spindown_time = 120
write_cache = on
}

然后执行
sudo /usr/lib/pm-utils/power.d/95hdparm-apm resume
重启后生效

在5分没使用硬盘的情况下, 硬盘会自动休眠

ps :
/dev/disk/by-id/* 自己去看下这个目录下自己的文件名
spindown_time 60 计算参考
0 = disabled
1..240 = multiples of 5 seconds (5 seconds to 20 minutes)
241..251 = 1..11 x 30 mins
252 = 21 mins
253 = vendor defined (8..12 hours)
254 = reserved
255 = 21 mins + 15 secs
write_cache 写缓存自己决定是否要开启,可以使用off

方法二
本文介绍如何自动关闭机械盘节电。
我们使用的命令是hdparm。详细说明可在命令行中执行

man hdparm
-S参数可以设置磁盘进入待命状态 (Standby/Spindown)的超时时间。该值用以确定磁盘在处于无活动状态多长时间后关闭旋转电机。

-B为磁盘的电源管理参数。它的取值用于平衡磁盘的性能与电耗。当取值大于127(除255)时磁盘将不会断电。取值255意味着关闭电源管理功能。为了让磁盘能自动断电,我们将该值取127.

硬盘 APM 设置参考

1.设置硬盘省电策略
无访问一定时间后自动停转待机(/dev/sda为硬盘地址)
hdparm -S 60 /dev/sda

这里-S取值设定逻辑比较奇怪,
本处列出部分常见取值供选:
30 = 2 min 30 sec
60 = 5 minutes
120 = 10 minutes
180 = 15 minutes
241 = 30 minutes
242 = 1 hour
243 = 1.5 hours
244 = 2 hours

2.使硬盘立马进入省电状态
hdparm -Y /dev/sda

策略可以是编辑定时任务列表
sudo vi /etc/crontab

加入如下一行(10分钟一次使硬盘进入休眠状态)
*/10 * * * * root hdparm -Y /dev/sda

3.检查硬盘当前省电状态
sudo hdparm -C /dev/sda

挂载硬盘:

查看硬盘挂载情况
fdisk -l
查看当前分区情况
df -l
查看分区信息
blkid
挂载
挂载需要将硬盘挂载在挂载点上(一个文件夹),但是mount并不会创建文件夹,所以在使用mount命令之前首先创建挂载点
mkdir /mnt/storage
将新分区 /dev/vdb1 挂载到/mnt/storage挂载点下
mount -t  auto   /dev/sda1 /mnt/storage/
查看是否挂载成功
mount
示例2:
mkdir /mnt/disk
mount -t  auto  /dev/sda1 /mnt/disk

设置自动挂载
磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
首先通过  blkid  命令将分区的uuid查询出来并复制uuid(往/etc/fstab中追加挂载信息时建议使用uuid)
 blkid
然后修改/etc/fstab文件,本文直接vim命令修改(文本之间一定要有空格),也可以用echo命令
vim /etc/fstab

在打开的文件最后添加一行:
UUID=*** /home/disk ntfs     auto 0 0
#UUID号 挂载点       文件系统类型   开机自动挂载 0    0
注:UUID号也可以用磁盘分区替换表示,如/dev/sda1。
其中UUID号以及文件系统类型可以使用第2步的命令得知。

文件类型种类:
NTFS:填写ntfs-3g或ntfs
FAT32或FAT16或FAT:填写vfat
自动检测文件系统:填写auto
auto用于设置挂载分区的特性为自动挂载。

保存修改,然后重启系统
reboot
重启之后查看磁盘信息

mount 硬盘地址  要挂载的地址
示例:
mount  /dev/mapper/nas--vg-buckups  /media/imgs
mount  /dev/mmcblk2p1  /media/mmt/boot
mount  /dev/mmcblk2p2  /media/mmt/system

挂载img镜像
losetup -f -P --show  os.img

mount  /dev/loop0p1  /media/mmt/boot
mount  /dev/loop0p2  /media/mmt/system

挂载网络硬盘
apt install cifs-utils
apt install smbclient

mount -t cifs -o username=admin,password=1234,gid=0,uid=0, //192.168.1.52/Data   /mnt/SMB

实现开机自动挂载参照 配置rc-local开机自启动  
#实现系统重启后自动挂载该分区,示例:

# >>> [HHD Disk]
/dev/disk/by-uuid/93d8f11a-0823-46e2-bde4-0b545de7a180   /mnt/Disk   ext4 defaults,nofail,user_xattr,jqfmt=vfsv0,acl 0 2
# <<< [HHD Disk]

UUID方式挂载,示例:
使用  ls -l /dev/disk/by-uuid/  命令,可以查看各个分区对应的uuid
先查看硬盘设备的UUID,示例:
blkid /dev/sda
( #回显/dev/sda: UUID="93d8f11a-0823-46e2-bde4-0b545de7a180" TYPE="ext4" )

vi  /etc/fstab
( #UUID=93d8f11a-0823-46e2-bde4-0b545de7a180(磁盘分区)  /media/Data(挂载目录) ext4(文件格式)defaults  0  0 )

UUID=93d8f11a-0823-46e2-bde4-0b545de7a180   /media/Data   ext4   defaults  0  2

NTFS格式挂载示例:
UUID=E4507BD5507BACC4   /var/www/nextcloud/data/admin/files/disk/d   ntfs   defaults,locale=zh_CN.UTF-8,gid=33,uid=33,umask=000  0   2

问题1:进程占用了磁盘
在执行第4步的指令后,如果终端返回了如下的提示:
那么可能是有进程占用了该磁盘,解决方案:
(1)使用fuser命令列出占用其的进程:
fuser -a /dev/sda1 #/dev/sda1需替换为需要的硬盘名
(2)使用kill命令将该进程杀掉:
kill 3726 #3726需替换为进程号
(3)重新使用mount命令进行挂载:
mount -t ntfs /dev/sda1 /home/disk #/dev/sda1需替换为自己的硬盘名
6. 问题2:磁盘权限为只读的
在执行第5步的指令后,如果终端返回了如下的提示:
这说明挂载成功了,但是权限是只读的。
说明:这块磁盘之前是Windows系统在用,现在系统转成了Linux。可能的原因是:
① Windows系统开启了快速启动。这种情况一般出现在Ubuntu与Windows共存的计算机上,需要在Windows的电源管理中关闭快速启动。
② 在启动Ubuntu系统之前,与之共存的Windows系统执行过强制关机。

解决方案:
(1)先将磁盘取消挂载:
umount /dev/sda1 #/dev/sda1需替换为需要的硬盘名
(2)在Ubuntu系统中修复文件系统:
sudo ntfsfix /dev/sda1 #/dev/sda1表示待挂载的受到Windows强制关机影响的NTFS分区
(3)再使用mount命令重新挂载就可以对磁盘进行读写了:
mount -t ntfs /dev/sda1 /home/disk #/dev/sda1需替换为自己的硬盘名



#armbian关闭swap分区方法
vim /etc/default/armbian-zram-config

# enable the armbian-zram-config service?
ENABLED=false

# Zram swap enabled by default, unless set to disabled
SWAP=false

#设置缓存优先级
优先物理内存使用
vim /etc/sysctl.conf
-添加:
vm.swappiness=0
-到末行,需要重启生效。

#安装armbian到EMMC
写入:./install.sh
完成后断电拔下SD卡,插入电源重启。

#实现系统重启后自动挂载该分区
vi  /etc/fstab
方式一:
#/dev/sdb1(磁盘分区)  /data1(挂载目录) ext4(文件格式)defaults  0  0
/dev/mapper/nas--vg-buckups    /media/imgs    ext4    defaults     1    2
#卸载命令为:
umount  /dev/mapper/nas--vg-buckups
方式二:
#实现系统重启后自动挂载该分区,UUID方式挂载,示例:
使用  ls -l /dev/disk/by-uuid/  命令,可以查看各个分区对应的uuid
先查看硬盘设备的UUID,示例:/dev/vda
blkid /dev/sda
#回显/dev/sda: UUID="93d8f11a-0823-46e2-bde4-0b545de7a180" TYPE="ext4"
vi  /etc/fstab
#UUID=93d8f11a-0823-46e2-bde4-0b545de7a180(磁盘分区)  /media/Data(挂载目录) ext4(文件格式)defaults  0  0
UUID=93d8f11a-0823-46e2-bde4-0b545de7a180   /media/Data   ext4   defaults  0  2

#在开机状态下新增磁盘
执行下面的命令刷新SCSI设备
echo "- - -" > /sys/class/scsi_host/host0/scan

硬盘工作状态查看:
对于Debian,Ubuntu系统:
apt install smartmontools
比如说我的硬盘挂载在/dev/sda,使用如下命令查看:
smartctl --all /dev/sda1 
发现并没有读到我们想要的信息,需要把SMART 打开,使用如下命令:
smartctl -s on --all /dev/sda
可以使用管道直接看到上电使用时间:
smartctl -s on --all /dev/sda | grep Power_On_Hours
结果如下:
9 Power_On_Hours          0x0032   094   094   000    Old_age   Always       -       2648
最后一个数字2648表示用了2648小时了。
如果你读取用USB连接的移动硬盘时,很可能会出现错误,那么可以使用如下命令:
smartctl -d sat --all /dev/sda

安装1Panel管理面板服务

一键安装:
执行如下命令一键安装 1Panel:
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
配置docker版OpenResty支持PHP
sudo apt-get install php-fpm安装PHP-FPM安装后更改PHP-FPM监听地址,配置路径 /etc/php/8.1/fpm/pool.d/www.conf
listen = /run/php/php8.1-fpm.sock 改为 listen = 127.0.0.1:9000
编辑OpenResty中网站配置文件:
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;
}
root /www/sites/rc.x0x.cn/index;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
#把请求转给此IP地址处理
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /opt/1panel/apps/openresty/TCP/www/sites/rc.x0x.cn/index$fastcgi_script_name;
#红色部分表示在php所在主机的那个位置找请求文件改为存放php文件目录的地方。
include fastcgi_params;
}




# Debian 提供的PHP软件包(按需安装)
apt install php-fpm php-json php-cgi php-cli php-mbstring ethtool python3-dialog acl xfsprogs jfsutils ntfs-3g sdparm postfix bsd-mailx cpufrequtils smartmontools uuid nfs-kernel-server proftpd-basic sshpass samba samba-common-bin rsync avahi-daemon libnss-mdns beep php-bcmath gdisk rrdtool collectd anacron cron-apt quota php-xml quotatool lvm2 watchdog libjson-perl liblocale-po-perl proftpd-mod-vroot libjavascript-minifier-xs-perl xmlstarlet socat rrdcached nginx wpasupplicant btrfs-progs samba-vfs-modules python3-pyudev python3-natsort jq chrony python3-netifaces python3-lxml salt-minion php-yaml python-click python3-click




#系统备份还原
备份:

tar -P -cvpzf /media/backup.tgz --exclude=/media/backup.tgz --exclude=/media/* --exclude=/boot --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/var/log/* --exclude=/root/.bash_history /

还原:

恢复前清理准备
cd /
rm -rf /tmp/root/*
rm -rf /usr/*
rm -rf /home/useradmin/*
rm -rf /var/*
rm -rf /sbin/*

正式还原命令
tar -P -xpzvf /media/backup.tgz -C /

新建备份目录示例
sudo mkdir /run//backup
删除备份文件示例
rm /run/backup.tgz
移动文件示例
mv /home/backup.tgz /run/backup/

最后讲一下第三条命令的注意事项,(总结他人输入失误的命令提取而来)
1、tar的用法:tar -参数 创建的文档 被压缩的目录或文档
由于被压缩的是根目录,很容易忽略掉 ”/“
2、exclude前面是两个连字符”--“,不是破折号也不是下划线,
3、exclude后面是”=“ ,用”-“符号又是其他意思
4、exclude后面接的是文档或者目录,如果要表示某个目录下面的全部文件,就用“*"符号,例子:--exclude=/home/* 如果写成--exclude=/home/ 就错了
5、最后,请在enter之前检查一遍命令是否有输入失误。

恢复命令结束时,你的工作还没完成,别忘了重新创建那些在备份时被排除在外的目录:
mkdir dev lost+found media mnt proc run sys tmp

mkdir proc && mkdir lost+found && mkdir mnt && mkdir sys && mkdir media && mkdir dev && mkdir /tmp && mkdir /var/log/

自动挂载USB设备

记录使用udev自动挂载SD卡和U盘的方法。方法适用于各种linux带udev的系统。
usb挂载,sd卡挂载,udev使用,debian udev自动挂载,ubuntu自动挂载,嵌入式自动挂载,arm自动挂载,开发板自动挂载

一、添加udev规则

确认你系统有udev,然后,创建自动挂载的udev规则文件,具体规则参照上面的链接,位置: /etc/udev/rules.d/

cd /etc/udev/rules.d/
sudo touch 11-add-usb.rules
sudo touch 11-add-remove.rules

上面的规则,一个是自动挂着的规则,里面包含自动挂载usb和自动挂载sd卡的规则。命名方式要注意:

我们只需要创建了rules文件就好了,只要命名规则对了,udev会自动生效。
udev 是按照规则文件的字母顺序来解析各规则文件的,并根据匹配上的规则创建对应的设备文件或链接。所以,解析的顺序很重要,为了使自定义的规则生效,可以把规则写入较前的规则文件中,例如20-names.rules

二、SD卡自动挂载
在上述的规则文件11-add-usb.rules中,加入如下内容,就是如何挂着的方法,有严格的规则,详细 百度/必应/谷歌/ 一下“udev规则”,这里不叙述。

ACTION=="add",GOTO="farsight", KERNEL=="mmcblk[0-9]p[0-9]", RUN+="/etc/mount-sd.sh %k", LABEL="farsight"

这个意思是如果发现sd卡插入,那么运行/etc/mount-sd.sh这个脚本!这个脚本后面还带一个参数 %K,这个%k就是linux内核发现的新的设备名字。

三、U盘自动挂载

接着, 还是11-add-usb.rules, 继续在下一行,或者隔一行,加入如下内容:

ACTION=="add",GOTO="farsight",KERNEL=="sd[a-z][0-9]",RUN+="/etc/mount-usb.sh %k",LABEL="farsight"

这个意思是如果发现USB卡插入,那么运行/etc/mount-usb.sh这个脚本!这个脚本后面还带一个参数 %K,这个%k就是linux内核发现的新的设备名字。

最后,整个/etc/udev/rules/11-add-usb.rules:

ACTION=="add",GOTO="farsight", KERNEL=="mmcblk[0-9]p[0-9]", RUN+="/etc/mount-sd.sh %k", LABEL="farsight"

ACTION=="add",GOTO="farsight",KERNEL=="sd[a-z][0-9]",RUN+="/etc/mount-usb.sh %k",LABEL="farsight"

四、卸载SD卡
在上述的规则文件11-add-remove.rules(这个是移除u盘和sd卡的规则,上面是加载的规则,不一样)中,加入如下内容:

ACTION=="remove",GOTO="farsight", SUBSYSTEM=="block",GOTO="farsight", KERNEL=="mmcblk[0-9]p[0-9]",RUN+="/etc/umount-sd.sh", LABEL="farsight"

五、卸载U盘
接着上一步,在同一个文件里面,隔行,继续加入如下内容:

ACTION=="remove",GOTO="farsight",SUBSYSTEM=="block",GOTO="farsight",KERNEL=="sd[a-z][0-9]",RUN+="/etc/umount-usb.sh",LABEL="farsight"

最后,整个/etc/udev/rules/11-add-remove.rules文件如下:

CTION=="remove",GOTO="farsight", SUBSYSTEM=="block",GOTO="farsight", KERNEL=="mmcblk[0-9]p[0-9]",RUN+="/etc/umount-sd.sh", LABEL="farsight"

ACTION=="remove",GOTO="farsight",SUBSYSTEM=="block",GOTO="farsight",KERNEL=="sd[a-z][0-9]",RUN+="/etc/umount-usb.sh",LABEL="farsight"

六、创建挂载的目录
mkdir /mnt/sd -p

mkdir /mnt/usb -p

上面两个目录的路径和命名,要根据你自己的需要求来创建。我这里是随便写的。

七、添加脚本
—->创建脚本 /etc/mount-sd.sh, 这个脚本对应上面的udev规则里面的脚本,是一个专门用于挂载sd卡的脚本,创建后,填入如下内容并保存:

#!/bin/sh
/bin/mount -t vfat /dev/$1 /mnt/sd
sync

保存后,记得添加可执行权限: chmod +x /etc/mount-sd.sh
—-> 创建脚本 /etc/umount-sd.sh, 这个脚本对应上面的udev规则里面的脚本,是一个专门用于umount sd卡的脚本,创建后,填入如下内容并保存:

#!/bin/sh
sync
umount /mnt/sd

保存后,记得添加可执行权限: chmod +x /etc/umount-sd.sh

—-> 创建脚本 /etc/mount-usb.sh, 这个脚本对应上面的udev规则里面的脚本,是一个专门用于挂载usb的脚本,创建后,填入如下内容并保存:

#!/bin/sh
mount -t vfat /dev/$1 /mnt/usb
sync

为此文件添加可执行权限,切记。

chmod +x /etc/mount-usb.sh

—-> 创建脚本 /etc/umount-usb.sh, 这个脚本对应上面的udev规则里面的脚本,是一个专门用于umount usb的脚本,创建后,填入如下内容并保存:

#!/bin/sh
sync
umount /mnt/usb

为此文件添加可执行权限,切记。

chmod +x /etc/umount-usb.sh

八、完成,重启设备/电脑,
插入usb或者sd卡,对应的usb和sd卡,会自动挂载在/mnt/usb 和 /mnt/sd中!

DD系统

目前支持amd和arm的脚本:

bash <(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/scdlyh/dd/master/InstallNET.sh') -22.04 -64 -p pasSw0rd --firmware

bash <(wget --no-check-certificate -qO- 'https://moeclub.org/attachment/LinuxShell/InstallNET.sh') -22.04 -64 -p pasSw0rd --firmware
Usage:
​ bash InstallNET.sh
-d/ --debian [dist-name]
​ -u/ --ubuntu [dist-name]
​ -c/ --centos [dist-version]
​ -v/ --ver [32/i386|64/amd64]
​ -p
​ --ip-addr/--ip-gate/--ip-mask
​ -apt/-yum/--mirror
​ -dd/--image
​ -a/-m
# dist-name: 发行版本代号
# dist-version: 发行版本号
# -p: 自定义密码
# -apt/-yum/--mirror : 使用定义镜像
# -a/-m : 询问是否能进入VNC自行操作. -a 为不提示(一般用于全自动安装), -m 为提示.