OS X EI Capitan 遭遇 mdworker deny 错误

过完节回来第一件事就是把系统干干净净的升级到了OS X EI Captain,但是用了几天总是觉的顿顿的,打开 Console.app 看有大量的 mdworker deny 的错误,Google半天也解决不了,有的说重启按住 Shift 进入安全模式再重启就可以了,染病卵。然后还有说重新安装就好了的。

Oct  9 10:22:51 Deathstar kernel[0]: Sandbox: mdworker(3830) deny(1) mach-lookup com.apple.audio.audiohald
Oct  9 10:22:52 Deathstar kernel[0]: Sandbox: mdworker(3829) deny(1) mach-lookup com.apple.audio.audiohald
Oct  9 10:22:52 Deathstar kernel[0]: Sandbox: mdworker(3830) deny(1) mach-lookup com.apple.audio.audiohald

本着治病救人的态度,我先不要重装了;

试了一下进入安全模式清理了所有的 Cache;来写个 blog 转头看的时候,呵呵,染病卵;帮主死的早啊!

看起来是Sandbox向~/Caches/目录写入文件有问题

Update: 试了chown -Rwhoami:staff ~,清Cache重启,然并卵;

Update: 试了把 Spotlight 给disable了,目测是不出现 mdworker 的问题了(呵呵,要是出现就邪了),但是其它和Sandbox相关的还是有,比如:

15/10/9 下午12:04:58.000 kernel[0]: Sandbox: com.apple.Safari(683) deny(1) file-read-metadata /usr

真是日狗了,一会儿打开 Spotlight 试试

Update2: 我败了,现在把几乎所有的东西都清理了,安全模式无数遍了,那个错误依然存在,不说了,晚上回家备份数据重新做系统,妈蛋的啊;

Update3: 在我清理了~/Library/Container/*以及大部分的~/Library/Preferences之后,终于不再出这个问题了,但是感觉 Console.app 下日志还是比较多的,只不过这次报错多和 Evernote 有关,难道说真的是 Evernote Must Die?

而且这次把 Safari 也顺道清理了,终于不会出现地址栏卡顿的情况了,不得不说 OS X 的行为越来越像 Windows,重启重装解决问题的套路又要来了。

Update4: 清理的时候还清理掉了一个~/Library/Preferences/.GlobalPreferences.plist和所有~/Library/Preferences/ByHost里的内容,发现三指拖动竟然没有了?Google 了一圈发现 Apple 竟然把这个功能放到 Accessibility 里去了,好吧,I服了U

Screen Shot 2015-10-09 at 5.27.56 PM

在OS X里不同域名用不同的域名解析器

由于公司内网的特殊原因,github.com以及pypi.python.org甚至gmail.com和google.com等网站被IT给劫持到了一个代理上去,本来是好事帮助大家翻墙了,但是这是实现我就不吐槽了。

带来的问题是这些网站都会有https的访问,尤其是以下客户端和命令行,证书是内网下发的假证书(听到这里,是不是很熟悉呢,没错这就是man-in-the-middle attack,#此处可以有呵呵

曾经反应过这样的问题总是不能奏效,只能自己动手了,Mac下可以这么搞

/etc/resolver/目录下放上域名为名的文件,比如/etc/resolver/python.org内容如下

nameserver 8.8.8.8
nameserver 8.8.4.4

命令行下的代理设置

为了科学上网,访问github之类的快一些,总要在命令行工具下用代理,于是就有了如下设定

# Setup commandline proxy
_proxy="http://127.0.0.1:16888"
_noproxy="localhost,.sina.com.cn,.weibo.com"
alias proxyon="export http_proxy=${_proxy} https_proxy=${_proxy} no_proxy=${_noproxy}"
alias proxyoff="unset http_proxy https_proxy no_proxy"

这个no_proxy是为了让本地内网的repo不要走代理.sina.com.cn代表了该域名下的内容都不走代理。

sudoers里写上环境变量的保持,

Defaults    env_keep += "http_proxy https_proxy no_proxy"

关闭ElasticSearch自动匹配

这几天在弄ElasticSearch来分析日志,突然有一天早上8:00之后的日志就进不来了,看了分析程序运行正常,服务也正常,只是ElaticSearch的日志增长很快,其中比较值得注意的就是这条了。

Caused by: org.elasticsearch.index.mapper.MapperParsingException: failed to parse date field [22-Nov-2013 12:24:30], tried both date format [yyyy/MM/dd HH:mm:ss||yyyy/MM/dd], and timestamp number with locale []

看起来应该是mapping的问题,对比了一下当前的mapping和之前的,确实有一些不一样,timestamp之前是string,现在成了date,本着调整一下mapping就可以的思路,调整了,开始有数据可以进来了,但是错误还是很多。

仔细看了一下,ES有一个date_detection的机制,得把这个给关了,停止他对时间字段的自动mapping。

CONFIG_DIR下放一个default-mapping.json就可以从cluster级别关闭了。

{
  default : {
    "date_detection" : false,
    "properties" : {
      "@timestamp" : {
        "type" : "date",
        "format" : "dateOptionalTime"
      }
    }
  }
}

解决Macbook Pro插USB设备僵3秒的问题

不知道从什么时候开始我的MBP就出现了插USB设备后,鼠标键盘僵三秒的问题,不是多大事儿,今天忍不了了。查了下是Android File Transfer的问题,删除了就好了。本来这也不值得写一篇,但是知道真相的我真的被恶心了一把,还是写出来吧,珍惜生命,远离Android。

rm -rf ~/Library/Application\ Support/Google/Android\ File\ Transfer

还要在System Preferences->User & Groups->Login Item里把这个Agent给删除了。

作弊条:root的shell吐核时su到root

帮朋友看个FreeBSD的机器,无法su到root用户了,查了下原因是csh吐核了,所以su就失败了。用su -m root可以保持当前用户的环境变量和当前目录,幸好这个用户的shell是/bin/sh,这样切到了root。

不过这事让我注意到还有toor的用户,就是给csh挂了用的。不过这帐号默认也用不得,得改个密码不说还只能在console用。

OS X上创建ISO

昨天蛋疼的在Parallels Desktop里安了一个Win98,说实话这货在当年真不是给老百姓用的,也怪不得有不少人因此找到了另一半。没有Share folder也没有优盘,分享点东西给Win98还真是困难啊,只有光盘这招了。

osxdaily介绍了在OS X上有命令工具可以做ISO文件

hdiutil makehybrid -iso -joliet -o image.iso /path/to/source

至于从光盘做ISO,那就dd好了。