Linux配置虚拟内存

  1. 用root用户登录系统
  2. 创建/usr/swap目录
  3. 执行dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=4096
  4. 其中的4096可修改为2048或其它大小,为虚拟内存大小;
  5. mkswap /usr/swap/swapfile
  6. swapon /usr/swap/swapfile
  7. 修改/etc/fstab,在第一行后(视情况)增加一行/usr/swap/swapfile swap swap defaults 0 0
  8. 重启:)通过free -m检查
Continue Reading

Linux命令经验——mount相关

之前用过很多次mount相关的功能,包括加载远程NFS等,最近因为配置vsftpd又用到,所以记录一下。

绑定A与B目录

这一操作感觉上类似于ln -s或者ln(实际上)。区别在于ln根本不能实现(硬链接不支持目录),而ln -s实际上是创建了一个文件指向了目标。

需求来自于一个ftp的配置。多个帐户要求共享若干个目录,每个帐户又有各自独立的目录,并且这些目录需要隐藏而不仅仅是禁止访问。

解决的方案是:

mount -bound /source/dir /target/dir

在fstab中启动时加载

这也是经常需要的功能,毕竟一次性加载的时候不多。

方法是编辑/etc/fstab文件,此文件的各个字段的标准解释参考这里

简单点说包括:fs_spec(加载系统) fs_file(挂载点<目录>) fs_type(文件系统类型) fs_options(参数) fs_dump(转储频率) fs_pass(启动时加载顺序)

翻译得通俗一点就是;

/source/dirOrDevice    /target/dir     file_system_type option1,option2 #1 #2

其中#1,#2一般为0,0。

对于上面提到的A目录挂载B目录时,对应的写法是:

/ftp/public     /ftp/users/ftp/public       none defaults,bind 0 0

字段之间可以使用“任意数量”的“空字符”分隔,至少包括:空格和制表符,且允许多个。

选项(option)之间使用逗号分隔。常用的除了上面的defaults,bind之外,还有ro(只读),rw(读写)等。

在另一个项目中,我试过用如下的方式加载远程的目录,通过NFS方式共享文件,实现上传文件的统一管理。

172.17.16.24:/nfs/upload    /nfs/upload    nfs    defaults 0 0

172.17.16.24:/nfs/archive    /nfs/archive    nfs    defaults 0 0

172.17.16.24:/nfs/share    /nfs/share    nfs    defaults 0 0

与之对应的的NFS配置虽然与mount无关,这里也列一下以便对照。

/nfs/share 172.17.16.25/32(rw,sync,no_root_squash,no_all_squash)
/nfs/share 172.17.16.30/32(rw,sync,no_root_squash,no_all_squash)
/nfs/share 172.17.16.45/32(rw,sync,no_root_squash,no_all_squash)
/nfs/archive 172.17.16.25/32(ro,sync)
/nfs/archive 172.17.16.30/32(ro,sync)
/nfs/archive 172.17.16.45/32(ro,sync)
/nfs/upload 172.17.16.25/32(rw,sync,no_root_squash,no_all_squash)
/nfs/upload 172.17.16.30/32(rw,sync,no_root_squash,no_all_squash)

fstab校验

之前遇到过一次修改了fstab把主机搞挂了的情况,所以一直对修改这个文件有点发怵,今天上网发现了一个命令,应该是非常实用的:

mount -a

该命令尝试加载fstab文件,可以不重启验证fstab文件是否有异常。

解除挂载

其实这个命令很简单,就是umount 挂载点路径

唯一需要说明的就是不是unmount,而是umount,一开始打错了。

Continue Reading

Mikrotik(ROS)知识整理

家里的RouterOS功能很强大,但太复杂有时有些东西记不住了,整理一下备用。

  1. ARP白名单
    1. 要求①为所有设备增加相应的静态ARP记录;
    2. 要求②将相应设备的接口(interface)的ARP设置改为reply-only;
    3. 由于大部分是WIFI设备而不是有线,所以实际是将bridge接口设置为reply-only;
    4. 取消白名单的设置是将ARP设置为enabled!
    5. 注意一定不是设置为disabled,在设置为disabled之后路由器将不应答任何ARP请求(包括正常的),导致MAC层通信完全瘫痪(MAC地址和IP地址无法映射和转换)。
  2. 先记到这……
Continue Reading

清除QQ同步助手的拼音排序

习惯用QQ同步助手做额外的备份,其中有一个功能叫:联系人排序,通过给联系人增加Phonetic First/Middle/Last Name字段,并为其中添加相应字段的“拼音”实现排序。

本来说这个功能只用于排序,但实测发现这个字段会用于siri的语音识别和朗读,结果就是你用拼音的方法读名字时它认不出来,而siri读通讯录名字会感觉很奇怪。

重新安装了QQ同步助手,发现只有排序功能而没有清除,于是想到了Apple Script,经过一翻搜索和实验,脚本如下:

  1. 打开Script editor,新建一个文件;
  2. 输入如下脚本:
tell application "Contacts"
	activate
	set the_people to every person
	repeat with tp in the_people
		try -- lazy way of skipping companies
			log tp
			set pfn to phonetic first name of tp
			set pln to phonetic last name of tp
			
			if pfn is not missing value then
				set phonetic first name of tp to missing value
			end if
			
			if pln is not missing value then
				set phonetic last name of tp to missing value
			end if
		end try
	end repeat
	
	save
end tell

执行即可:)

Continue Reading