标签: linux

  • 解决Proxmox VE每隔5分钟就需要重新登录的问题

    解决Proxmox VE每隔5分钟就需要重新登录的问题

    时效性提醒:本文首次编写发布于5 年前。

    该问题常在主机从集群分离后出现,现象是登录WebUI后,总会在登陆(大约)5分钟后就无法继续操作,并会弹出登录框,需要重新登录。

    TLDR:解决方法是在参照官方wiki分离节点后,删除/etc/pve/ha/目录下的所有文件(可能需要停止pve相关服务),即可。

    如果/etc/pve/priv/lock/下有残留的文件,也可以一并删除。

    这个问题原先在国内和外网上都没有靠谱的解决方案,而我也是在重装了Proxmox VE后对比新旧配置文件夹发现的异样,可能是网络上可见的第一例成功解决的吧。

    以下DLC

    关于如何在不丢失虚拟机的情况下重装Proxmox VE软件套件,这里可以简单的说明一下:

    • 首先分离节点(即主机),确保不在cluster中
    • 备份需要的pve配置文件:
      • 存储配置文件:
        /etc/pve/storage.cfg
      • 每个LXC容器配置文件:
        /etc/pve/nodes/<your_node_name>/lxc/*
      • 每个VM的配置文件:
        /etc/pve/nodes/<your_node_name>/qemu-server/*
    • 然后停止pve服务,卸载proxmox-ve元软件包(期间还会有一道安全措施),然后用apt autoremove卸载所有的pve软件包
    • 备份并移除/var/lib/pve-cluster//etc/pve目录虚拟文件系统,即pmxcfs,而这里是其“本体”)
    • 此时你的系统就变成了近似普通的Debian Linux,可以重启一下(要有仪式感)
    • 重新装回proxmox-ve
    • 先关闭所有pve服务,然后恢复之前备份的文件,重启机器
    • 登陆WebUI,你应该能看到你原来所有的虚拟机和LXC了

    最后吐槽一下pve:cluster加入容易,移出难。还会导致一些奇怪的问题,建议一旦你的cluster有分离操作,最好把所有涉及到的节点都分离并清理干净(甚至重装pve软件),再把需要的节点重新组合为cluster。当然最好是加入cluster就考虑清楚,别做分离操作。

  • SMCL – 使用Python编写简单Minecraft启动器

    时效性提醒:本文首次编写发布于10 年前。

    Simple Minecraft Launcher,一个使用python3编写的轻量级Minecraft启动器。

    代码见:http://ideone.com/aVWnVh , Github地址:https://github.com/WuSiYu/smcl。直接不加任何参数运行脚本会显示帮助和用法,这里就不再多说了。

    下面介绍原理:

    (更多…)
  • 解决KDE5下快捷键失效的问题

    时效性提醒:本文首次编写发布于11 年前。

    用着用着kde5,尼玛快捷键突然就不好使了,进系统设置,发现以前的快捷键都没了,重新设置后倒是有了,但一重新登录就又尼玛没了,令我十分不爽。因为我平时都习惯用Ctrl+Alt+t来启动终端,这来自gnome的习惯使得我在kde下也设置了这么一个快捷键,所以失效后启动个终端还得用鼠标去点,让人太不爽了!

    所以我决定解决这个问题,首先我要找处kde存储快捷键的配置文件,不想一个一个去找,于是我就想通过设置快捷键后来比较所以文件的日期来找到它。

    首先进一个正常的kubuntu的livecd,然后先存储主目录下所以文件的日期

    ls -laR . > 1.txt

    -R表示递归列出所有子目录的文件,-l和-a就不用我介绍了吧

    然后进入系统设置,随便改一下快捷键,然后应用。

    然后再存储所有的文件的日期

    ls -laR . > 2.txt

    接下来用diff来比较1.txt2.txt就可以知道更改前后那些文件发生了变化,就可以找出它了,为了方便我在livecd里装了个kdiff3,一个图形化的diff前端。

    然后就一目了然了

    .config/khotkeysrc这个文件。

    之后为防止再失效,我把配置好快捷键的这个文件覆盖了我的home文件夹里原本的配置文件,然后设置444权限防止再被改坏。

  • 在一些"无法使用输入法的Linux程序"中输入中文

    时效性提醒:本文首次编写发布于11 年前。

    Linux大法虽好,可有些程序在Linux下则会有一些问题,比如Sublime Text和Telegram等,这些程序一般看起来不会有太大的问题,但一想输入中文就坑爹了:根本不出现输入法的”输入条”,以至于无法输入中文。

    这样就真的无法输入中文了吗?不,我们还有复制粘贴大法:先在其他的程序的一个正常的文本框里把要输入中文打好,之后在复制粘贴到有问题的程序的文本框中。

    好吧,我能想象到你现在的暴漫表情。确实,这太麻烦了,所以我们需要dialogxclipxdotool这三个工具来实现整个过程的自动化。

    首先,安装dialogxclipxdotool,deb系的发行版执行一些内容即可安装,其他系的发行版类似:

    sudo apt-get install dialog xclip xdotool

    然后,建一个脚本,输入以下内容:

    #!/bin/bash
    kdialog --inputbox ' ' | tr -d 'n' | xclip -i -selection clipboard #非qt环境的用户请把kdialog改为gdialog
    xdotool key "ctrl+v"
    

    最后,在你的桌面环境的快捷键设置中,添加一个你喜欢的自定义快捷键,并设置在快捷键按下时执行刚才的那个脚本。

    就这样,以后在你不能输入中文的文本框中,按快捷键,会弹出一个带有正常的文本框的对话框,在里面输入完中文后按回车,你输入的中文就会自动的粘贴到不能输入中文的文本框中。非常的方便。

  • Linux驱动开发入门

    时效性提醒:本文首次编写发布于11 年前。
    转载自:blog.chinaunix.net

    在开始步入Linux设备驱动程序的神秘世界之前,让我们从驱动程序开发人员的角度看几个内核构成要素,熟悉一些基本的内核概念。我们将学习内核定时器、同步机制以及内存分配方法。不过,我们还是得从头开始这次探索之旅。因此,本章要先浏览一下内核发出的启动信息,然后再逐个讲解一些有意思的点。

    2.1 启动过程

    图2-1显示了基于x86计算机Linux系统的启动顺序。第一步是BIOS从启动设备中导入主引导记录(MBR),接下来MBR中的代码查看分区表并 从活动分区读取GRUB、LILO或SYSLINUX等引导装入程序,之后引导装入程序会加载压缩后的内核映像并将控制权传递给它。内核取得控制权后,会 将自身解压缩并投入运转。

    基于x86的处理器有两种操作模式:实模式和保护模式。在实模式下,用户仅可以使用1 MB内存,并且没有任何保护。保护模式要复杂得多,用户可以使用更多的高级功能(如分页)。CPU必须中途将实模式切换为保护模式。但是,这种切换是单向的,即不能从保护模式再切换回实模式。

    内核初始化的第一步是执行实模式下的汇编代码,之后执行保护模式下init/main.c文件(上一章修改的源文件)中的start_kernel() 函数。start_kernel()函数首先会初始化CPU子系统,之后让内存和进程管理系统就位,接下来启动外部总线和I/O设备,最后一步是激活初始 化(init)程序,它是所有Linux进程的父进程。初始化进程执行启动必要的内核服务的用户空间脚本,并且最终派生控制台终端程序以及显示登录 (login)提示。

    图2-1 基于x86硬件上的Linux的启动过程

    本节内的3级标题都是图2-2中的一条打印信息,这些信息来源于基于x86的笔记本电脑的Linux启动过程。如果在其他体系架构上启动内核,消息以及语义可能会有所不同。
    (更多…)

  • 使用wget命令下载整个网站

    时效性提醒:本文首次编写发布于11 年前。

    wget是不可多得的下载神器,你甚至可以用它下载整个网站:

    wget -r -p -np -k http://some-website.com

    当然,这种事情自己看着玩就好,用作其他目的还请务必先得到网站原作者的许可。

  • Linux中du命令使用详解

    时效性提醒:本文首次编写发布于11 年前。

    du命令的全称是disk usage ,即磁盘使用。

    该命令常用于统计整个文件夹的大小。

    (更多…)

  • Linux中top命令使用详解

    时效性提醒:本文首次编写发布于12 年前。

    top是linux中一个交互式系统监视器,可以很直观查看系统负载、进程、内存等信息。

    (更多…)

  • Linux 图形界面机制简单介绍

    时效性提醒:本文首次编写发布于12 年前。

    Linux 下图形界面比较复杂,主要由X-Server,X-Client,窗口管理器和桌面系统

    如果你的Linux装有图形界面登录管理器,那它就会自动完成图形界面的启动过程,这是很方便的.不过我们要研究图形界面的时候,最好把它关掉.

    假设你已经把图形界面登录管理器关了,回到了纯字符界面下,那么恭喜你,你有看到图形界面的具体组成的机会了.

    现在我们在终端里执行xinit,就会启动一个X-Server和一个与它相连的X-Client,并且启动了Xterm,Xterm是一个图形界面下的终端模拟器.

    (更多…)

  • 修改phpMyAdmin的默认访问路径

    时效性提醒:本文首次编写发布于12 年前。

    phpMyAdmin是一个方便管理Mysql的软件,默认以http://youdomain.com/phpmyadmin来访问,不过这样以来谁都可以访问你的phpmyadmin,如果你的密码被别人知道了,那他就可以登陆phpmyadmin来修改你的数据库,这简直是一场灾难!

    所以,我们要修改一下phpMyAdmin的默认访问路径,这样别人就不知道怎么访问你的phpmyadmin了.

    我们只需要修改一下webserver的phpmyadmin配置文件就可以了,我们以apache为例,其他的都类似.

    debian系的linux发行版中配置文件在/etc/apache2/conf-enabled/phpmyadmin.conf

    redhat系的linux发行版中配置文件在/etc/httpd/conf.d/phpMyAdmin.conf

    配置文件中有这么一行:

    Alias /phpmyadmin /usr/share/phpmyadmin
    

    明白了吧,phpMyAdmin的文件实际在/usr/share/phpmyadmin里,这里只是一个别名,修改它就可以修改phpMyAdmin的默认访问路径了.

    例如修改为

    Alias /mysqladmin /usr/share/phpmyadmin
    

    就可以用http://youdomain.com/mysqladmin来访问phpmyadmin.

  • Debian下Apache的配置文件

    时效性提醒:本文首次编写发布于12 年前。

    Linux的一个特点就是发行版多,不同的发行版造就了一些不同,比如悲催的Apache…

    在Red hat系下,Apache被叫做httpd; 而在debian系中,Apache就叫apache.

    debian下apache的配置文件在/etc/apache2/中,是由多个配置文件组成的一个目录,结构主要如下:

    #       /etc/apache2/
    #       |-- apache2.conf
    #       |       `--  ports.conf
    #       |-- mods-enabled
    #       |       |-- *.load
    #       |       `-- *.conf
    #       |-- conf-enabled
    #       |       `-- *.conf
    #       `-- sites-enabled
    #               `-- *.conf
    

    也就是说,这些文件共同组成了apache的配置.

  • Ubuntu添加桌面小工具

    时效性提醒:本文首次编写发布于12 年前。

    ubuntu不仅仅是一个十分专业的系统,也是一个十分华丽的系统,可以配合各种主题和插件来让你的ubuntu更加多彩。

    在ubuntu下实现桌面小工具的是conky,还有一个方便配置它的conky-manager(conky配置管理器)。

    (更多…)