Mac 关闭SIP

SIP 是在 OS X El Capitan 中有一个跟安全相关的模式叫 SIP(System Integrity Protection ),它禁止让软件以 root 身份来在 Mac 上运行。同时保障系统完整性。没特殊需求别瞎折腾

  1. 开机按住Command+R 进入 Recovery Mode
  2. 左上角菜单里找到实用工具 -> 终端
  3. 输入csrutil disable回车
  4. 重启

重新启用SIP,重复上述步骤在第三部执行csrutil enable即可
查看当前sip状态 执行 csrutil status

设置brew国内镜像

替换bottle源

# zsh 设置 ~/.zshrc
# bash 设置 ~/.bashrc
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"

刚设置完需要手动source一下,就像这样:source ~/.zshrc

替换homebrew

cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

替换homebrew-core

cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git

应用的是中科大的镜像源

撸了个轮子 2FA 一次性密码 生成 算法 Python版

Pypi: https://pypi.python.org/pypi/pytotp/3

from pytotp import c2fa

# 生成一个密钥
key = c2fa.generate_secret_key()

# 生成密码
token = c2fa.oath_hotp(c2fa.b32_decode(key),c2fa.get_timestamp())

#验证密码
result = c2fa.verify_key(key,'123456')
if result:
    print("Successfully")
else:
    print("Wrong token")

Python解析并批量下载m3u8播放列表后自动合并

import os, sys, requests


def show_progress(processed,total):
        """
        简易进度条
        """
    percent=(int(processed)/int(total))*100

    bar_length=50
    hashes = '#' * int(percent/100.0 * bar_length)
    spaces = ' ' * (bar_length - len(hashes))
    sys.stdout.write('\rPercent: [%s] %d%%[%s/%s]'%(hashes+spaces,percent,processed,total))


lines = []

# 解析并获取所有需要下载的ts分段
with open('file.m3u8','r+') as f:
    for line in f.readlines():
        line=line.strip()
        if (line.endswith('ts')):
            url=line
            lines.append(url)

i=0
total=len(lines)

# 开始下载
for line in lines:
    filepath = line
    i=i+1
    if (not os.path.isfile(filepath)):
        url = URLPREFIX/{}'.format(line)
        data = requests.get(url)
        with open(filepath,'wb') as code:
            code.write(data.content)

    show_progress(i,total)

# 调用ffmpeg进行合并
os.system('ffmpeg -i file.m3u8 -c copy file.mkv')

2018年目标

年前立个flag

  1. 完成Secure Key
    • 基于TOTP的一次性密码管理、生成APP(iPhone版和Android版)
    • 扫码添加
    • 密钥库本地加密
    • iCloud及其他云工具同步(AES256加密)
    • 自定义分类
    • 自定义icon
    • 多应用版和内部私密版(一键替换LOGO、布局、主题颜色等信息)
  2. 使用Go/Python完成C-Queue初版
    • 可指定Broker
    • 兼容:AMQPBeanstalkdKafka
    • HTTP带Token回调
    • 运行时任务保持和回收
    • HTTP命令接口
    • 支持分布式部署
    • 并发一致性
  3. 使用Go/Python完成C-Mail。实现域名绑定、收发邮件,数据库存储,磁盘限额。兼容SSL/STARSSL,可分布式部署。
    • 实现域名绑定
    • 收发邮件
    • 数据库存储(或整合ElasticInbox)
    • 磁盘限额
    • 兼容SSL/STARTTLS
    • 可分布式部署
    • 私有HTTP接口
    • EventPush接口
  4. 完善C-DMSDocker Manage System 基于Go开发的Docker分布式运维监控系统)
    • 管理全局Swarm
    • 实现SSH协议
    • 主机发现
    • SSH安装部署Docker接入Swarm
    • 全局监控报警
  5. 完成C-DHUB(Docker Hub)
  6. 完成C-GSG(Global Sockets Gateway)