Jump to Navigation

Linux

Linux/Unix操作系统

115syncd项目介绍

115网盘是个比较好用的网盘,提供比较大的磁盘容量。

该115syncd项目主要提供以下功能,
自动模拟登陆115网盘api。
以服务模式运行。
指定本地目录以及对应的115网盘目录。
监控指定目录,如有目录或者文件发生变化,则自动上传到115网盘对应的目录。
指定目录对可配置多个。
本地目录与网盘目录能够保持一到,在缺少目录时自动创建。
支持任务队列式并发上传控制,默认3个并发上传。
文件上传采用POST协议方式,有上传文件大小限制。
能够自动过滤掉一些指定的临时文件。
能够实现仅上传模式功能,即本地删除而网盘不删除,这样保持本地空间远小于网盘空间。
反复修改重复上传的文件,根据哈希去重,只保留最近一次上传的文件。

该实现使用PyQt5,在linux系统上安装使用都非常简便。
项目地址:https://github.com/kitech/115syncd

我的Arch Linux aur包仓库

由于一些aur包需要多台机器使用,每台机器都安装很不方便,
借助Git @ OSC建立了一个简单的aurcare仓库,方便一些aur包的使用。
感谢Git @ OSC 的开放免费存储服务。
当然这样也还有不方便的地方,就是这个仓库允许的单文件最大50M,有些大的包无法放在上面。

仓库使用,在/etc/pacman.conf中添加这么一行即可。

[aurcare]
Server = https://git.oschina.net/kitech/aurcare/raw/master/

Category:

如何在lxc容器中使用tun/tap设备

tun/tap需要用到/dev/net/tun设备文件,

默认情况下lxc不会创建/dev/net/tun设备文件。

Category:

Linux桌面添加新的分辨率

xrandr --newmode "1680x1050" 147.1 1680 1784 1968 2256 1050 1051 1054 1087 +Hsync -Vsync
xrandr --addmode LVDS1 1680x1050

原来的和控制中没有这个分辨率,通过这两个命令,添加新的分辨率
然后可在KDE的"显示与监控”配置项中找到这个新的分辨率可以使用。

也可以继续使用xrandr命令,设置当前的显示分辨率,
xrandr --output LVDS1 --mode "1680x1050"
或者,
xrandr --output LVDS1 --mode "1920x1200"

原来的1920x1200的字段实在太小了。

16:10比例的其他分辨率:
"1440x900" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync

当前环境使用IPv6的完全解决方案

目前IPv6已经有小范围的应用。
但国内除了几所高校有IPv6网络之外,互联网上的使用范围还非常少。
现在的操作系统都已经支持IPv6协议,可以使用标准的6over4协议,
实现现在就用IPv6的功能。
现在的网络软件也大多数支持IPv6协议,不过优先支持使用IPv4地址。

除了操作系统之外,还需要DNS的支持,服务器的支持。

这里讨论一种可尽量使用 IPv6协议的客户端系统配置。
这一配置包括以下几项:
1、查看当前的操作系统是否支持IPv6并开启IPv6
2、6over4 隧道的实现程序安装
3、支持IPv6的公用DNS服务器
4、本地DNS缓存服务器,dnsmasq
5、本地DNS劫持服务器,kdns
6、软件的IPv6参数
7、测试与测试工具
8、注意事项

32位 arch linux上使用4G内存:PAE内核使用

原来2G内存的电脑,升级到4G内存后,由于系统是原版的32位archlinux,无法完全利用上4G内存。

在aur.archlinux.org上有个linux-pae内核包,用于32位系统上使用超过4G的内存。

按照编译普通aur包的方式编译出来新的内核包,

pacman -U linux-pae-3.14.3-2-i686.pkg.tar.xz linux-pae-headers-3.14.3-2-i686.pkg.tar.xz

重新使用新安装的内核启动系统。即可利用到4G以上的内存了。

不过,原来安装的一些内核模块需要重新编译安装,像virtualbox,vmware这种第三方的内核模块。

像virtualbox可以使用dkms install vboxhost/4.3.10命令安装,

内核模块安装到了/usr/lib/modules/3.14.3-2-pae/kernel/misc/

再用modprobe vboxdrv后,可以正常使用。

Category:

程序运行时动态修改进程名

在做平台的过程中,碰到一个可能的需要,平台服务的的进程名一般都不变的,
如果需要动态在外部监控进程的执行状态,比如程序正在执行什么功能,
也许可以通过动态修改进程的名字实现,可以把正在执行的功能做个摘要放在进程名字中。

在linux上,有一个系统调用prctl,这是一个综合性的函数,可以实现一些进程的控制功能。
动态修改进程名的功能也就是在prctl函数。

来看看prctl的函数原型,

NAME
prctl - operations on a process

SYNOPSIS

tcpcoh: tcpcopy over http

tcpcoh,正如标题所示,是一种基于http的tcpcopy功能。
其流程为,某tcp服务程序,可以被客户端程序通过http的方式访问,
客户端与该tcp服务之间没有直接连接,
而是通过tcpcoh实现模拟tcpcopy功能,在客户端与服务器端交换tcp包。
这种的方式优点是,tcpcoh不需要理解基于tcp的服务协议,
因此从理论上说,tcpcoh支持所有的tcp协议服务程序。

tcpcoh网络架构,

通过http实现简单的远程shell访问代理

当机器处理不同局域网时,如果希望能够互通,一种常用的也比较可靠的方式是使用vpn。
如果是自己搭建私有vpn,则需要一台可控的公网IP服务器。
在没有这些资源的情况下,希望机器的互通比较困难。

在此,给出一种并非完全的互通方式,可以实现单向的远程shell命令执行方式。
这种方式能执行另一局域网中机器的命令,实现简单的类似远程登陆管理的功能。
这就是使用http实现的远程shell访问代理。

实现逻辑为,
在一台有公网访问的http服务器上安装一个像php一类的脚本程序,
该脚本程序分服务端模式与客户端模式。
服务模式下,脚本程序不断轮循命令记录数据库表,查找需要远程执行的下一条命令记录,
并把查找到的命令记录依次输出到访问该脚本的客户端组件。
客户端模式下,脚本程序不断轮循命令响应数据库表,查找需要返回的已经执行完的下一条命令行输出,
并把查找到的命令行输出记录输出到访问该脚本的客户端组件。

使用zram优化linux交换分区

zram从名字就可能看出,它是linux内核中的一种内存压缩技术。
zram一个非常适用的地方是把它用于基于压缩内存的linux交换分区。

针对内存比较小的机器,比如内存在2G以内的机器,使用效果非常明显。
其原理是使用CPU的压缩功能变相地让系统有更多地内存可用,。
当然,这需要一部分CPU时间来处理内存地压缩,对于CPU相对比较好的机器,则非常适用。

像我在用的一台电脑,CPU是i5的,但内存是2G,还有512M内存分给了集成显卡,
正常使用的情况下,非常难用,这种笔记本电脑配置非常不合理。
不同自己的电脑,也无法升级内存,则使用这种技术,可以改进一点硬件配置的不合理。

zram一般使用可用物理内存的20-25%,这是比较推荐地值。
假设现有1.5G内存可用,拿出来25%的内存,也就是375M,还剩下1125M内存。
而这375M内存,在压缩率为70%的情况下,可以当作1250M的内存使用。
剩余内存与这些压缩内存相加,大概有1125+1250=2375M了。
可用内存从原来的1.5G变到了2.3G左右,效高还算是比较明显的。

内核中类似的技术,cleancache。

参考资料:

Category:

页面

订阅 RSS - Linux


Main menu 2

by Dr. Radut