标签 Linux 下的文章

缘由

今天刚好比较有空,闲着比较了一下自己各个服务器的配置,感觉原来的服务器处理器太旧了,都已经是2013年的老古董了。

没错,就是 RackNerd 的美国服务器。虽然我对性能要求不高,对加载速度也不是很敏感,但能用更好的,为什么不用呢?

过程

新服务器位于荷兰,但我用 Cloudflare 的 CDN 保护网站,其实在哪都差不多。

先用 typecho 的备份功能把博客数据备份到了本地,然后重新上传到新服务器上的 typecho 博客程序上还原。

后面就是把主题和插件也一起拷贝下载,然后上传到新服务器。

简单粗暴,但是很直接,花了半个多小时吧,基本都还原好了。

中间比较尴尬的是,新博客的登录密码忘了,于是进入数据库直接修改账号密码,就是这么粗暴。

再之后是域名解析的替换,更简单了。

结尾

没啥写作的动力,现在写这些总会十分无力,脑袋空空,钱包也空空。

参考链接

Windows使用powershell或者cmd ssh免密码远程连接Linux – 姿势小王子
本地终端使用ssh key免密码连接vps-搞机技术-姿势论坛—姿势小王子

流程备份

思路:本地终端生成公钥文件,将公钥文件上传到服务器,服务器生成验证文件,服务器修改配置允许密钥连接,还可以禁用密码登陆。

  1. 配置文件放在:C:\Users\用户名.ssh 该目录下,如果没有自行创建,文件名为 config ,没有后缀。
  2. 本地终端生成公钥,执行一下命令
    ssh-keygen -t rsa
    在 .ssh 文件夹生成:id_rsa 和 id_rsa.pub 两个公钥文件,记得存放好。
  3. 将 id_rsa.pub 公钥文件上传到服务器,可以用 scp 命令或者 FTP 工具。

    #本地终端进入 .ssh 文件夹
    cd .ssh
    
    #上传公钥文件
    scp -P 22 id_rsa.pub root@ip地址:/root/.ssh
    # -P 端口,id_rsa.pub 需要上传的本地文件,root 远程服务器的用户名,/root/.ssh,远程服务器保存文件夹
  4. 服务器生成验证文件:

    #进入服务器的 .ssh 文件夹
    cd .ssh
    
    #生成验证文件 authorized_keys 
    cat id_rsa.pub > authorized_keys
  5. 修改验证文件和 .ssh 文件夹的权限:

    chmod 600 authorized_keys
    chmod 700 ~/.ssh
  6. 服务器修改 ssh 配置允许密钥连接:

    vim /etc/ssh/sshd_config

    在最后面添加配置参数:

    RSAAuthentication yes
    PubkeyAuthentication yes

    如果需要禁用密码登录,建议尝试使用密钥登录后再来修改:

    PasswordAuthentication no

    重启 sshd 服务是配置生效:

    service sshd restart
  7. 本地终端远程连接服务器:

    ssh root@ip地址 -p 22 -i .ssh/id_rsa
    # root 远程VPS用户名,-p 端口,-i 公钥路径
  8. 本地终端配置文件 config,没有就自己创建一个,内容:

    #这三行就不会创建knownhost文件,服务器重装之后,就不用删除旧的信息。
    Host *
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    
    Host tx1 #别名 ssh 这个别名就可以连接了
    HostName xxx.xxx.xxx.xxx #服务器 ip 地址
    User root #服务器登录用户名
    Port 22 #端口
    IdentityFile ~\.ssh\id_rsa #默认使用这个私钥文件登录,这一行可以不写,如果使用其他的密钥文件则需要写一下路径
  9. ssh连接:

    ssh 别名
    示例:ssh txl

使用 parted 分区

parted的2种使用方式

  • 交互式
    手动按序交互式的创建;
  • 非交互式
    可将命令行写在脚本中,运行脚本实现一键创建;适用于远程批量管理多台主机的场景。
  • 两种方式比较
    两种方法的使用和原理其实是一样的;要想实现非交互式创建,无非是在每一个具体的交互式命令前加上parted DEVICES_NAME即可。

    交互式:

  • 确定磁盘驱动器的位置

    parted /dev/sda print devices
  • 选择硬盘&新建标签

    parted /dev/sdb
    (parted) mklabel gpt
  • 分区

    命令格式:mkpart PART-TYPE [FS-TYPE] START END
    mkpart primary etx4 0 -1 
  • 查看&退出

    查看:p
    退出:q

创建 RAID5 磁盘阵列

mdadm --create /dev/md0 --level=5 --raid-devices=6 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1

mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

mdadm -Cv /dev/md0 -n 6 -l 5 /dev/sdb /dev/sdc /dev/sdd /dev/sde

保存 RAID

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u
echo '/dev/md0 /mnt/md0 ext4 defaults, nofail, discard 0 0' | sudo tee -a /etc/fstab

sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

将RAID详细信息写入/etc/mdadm.conf文件

sudo update-initramfs -u

更新initramfs,以便系统启动加载RAID设备

echo '/dev/md0 /mnt/md0 ext4 defaults, nofail, discard 0 0' | sudo tee -a /etc/fstab

在/etc/fstab文件中添加一行,在系统启动时自动挂载/dev/md0至/mnt/md0

所以这3条命令的作用是:

  1. 将RAID配置信息写入/etc/mdadm.conf文件,以便系统启动时加载RAID
    2.更新initramfs
  2. 在/etc/fstab中添加条目,在系统启动时自动挂载/dev/md0到/mnt/md0
    以上3条命令是配置Linux软RAID的常用命令,主要作用是确保系统启动后RAID可以自动启动并挂载。