rsync 用法

sync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。

rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]host:DEST
rsync [OPTION]... [USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync [OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
阅读全文 ~

Regex url route in Flask

class RegexConverter(BaseConverter):
    def __init__(self, map, *args):
        BaseConverter.__init__(self, map)
        self.map = map
        self.regex = args[0]


app.url_map.converters['regex'] = RegexConverter

Define a regex route

@app.route('/go/<regex("[a-zA-Z0-9]+"):url>')
def go(url):
    real_url = redis.get(url)
    return redirect(real_url)

阅读全文 ~

Uninstall mongodb in CentOS

1.Stop Mongo DB using -

sudo service mongod stop

or for CentOS7

systemctl stop mongod

2.Remove Packages using -

sudo yum erase $(rpm -qa | grep mongodb-org)

3.Remove Data Directories using -

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo

From: https://stackoverflow.com/questions/8766579/uninstalling-mongo

阅读全文 ~

用ADB删除android系统预装的app (华为EMUI示例)

首先要打开开发者调试。
华为EMUI就是连续按下关于中的版本号。

连线后或者无线状态下adb连上设备。进入adb shell

手机上打开当前需要卸载的应用如华为音乐,在adb shell下执行 dumpsys window | grep mCurrentFocus

再使用命令卸载pm uninstall -k --user 0 com.android.mediacenter

-k 表示保存数据,如不需要,可去掉 -k。
--user 指定用户 id,Android 系统支持多个用户,默认用户只有一个,id=0

其它华为EMUI预装的APP如
com.huawei.himovie 华为视频
com.huawei.phoneservice 用户服务
com.huawei.browser 浏览器

其它可以参考这里https://club.huawei.com/thread-16472503-1-1.html

阅读全文 ~

Using mongodb service in docker-compose.yml

version: '3.1'

services:

  web:
    build: .
    restart: always
    ports:
      - 8080:80
    environment:      
      MONGODB_HOST: mongodb
      MONGODB_USER: root
      MONGODB_PWD: 123456
    depends_on:
      - mongodb

  mongodb:
    image: mongo:4.1
    restart: on-failure
    ports:
      - 27017:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: 123456
    volumes:
      - ./data/mongo:/data/db
      - ./data/mongo-entrypoint/:/docker-entrypoint-initdb.d/

阅读全文 ~

Dockerfile指定pip安装源

Dockerfile使用的python3.7作为基础镜像 FROM python:3.7,但是执行
RUN pip install --no-cache-dir -r requirements.txt
是默认走了这个源,https://files.pythonhosted.org/packages,编译用时太久。

无赖修改成国内源来加快编译速度:
RUN pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir -r requirements.txt

附国内其它源:
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

阅读全文 ~

Ironic自定义组数据盘RAID

这个特性是在以前公司负责详细设计开发的,面试了这么久工作还没着落,靠着回忆将部分细节记录分享下。

RAID详细定义见https://zh.wikipedia.org/wiki/RAID

整个流程如图:
Screen Shot 2019-06-30 at 02.35.33.png

运维人员在裸金属服务器入云后将部分硬盘所在槽位作为系统盘标记更新到ironic node的extra字段中,另一些有硬盘的槽位作为数据盘提供给用户自定义组建RAID盘。其实像不同的flavor规格定义里已经添加了描述,console数据盘选择时就是根据flavor的定义展示的。形如:2 * 600GB SAS System Disk RAID 1 + 12 * 10TB SATA 加号前面指的系统盘,后面是数据盘。

阅读全文 ~