链接文件a.txt内容如下
1 | http://example.com/123.txt |
日志文件为从cdn下载的或者nginx的压缩日志,gz格式
思路:循环zcat压缩文件,然后两个文件都做一个处理,去掉重复的部分,然后对这俩文件进行重复统计,有的话说明链接有访问
简单的示例
1 | #!/bin/bash |
由于Gitlab社区版是不提供高可用等方案的,只能定时备份出来然后出问题了再导入,有时候会丢失数据,而且耗时随着备份文件大小增加,后期维护成本高。
在搜索了大量的方案之后,只有使用drbd的才是靠谱的,而且比较容易跟现有的结合,值得尝试。
这里都是参考了 csdn博主的 https://blog.csdn.net/allway2/article/details/102478719
# setenforce 01 | [root@localhost ~]# cat /etc/selinux/config |
1 | systemctl stop firewalld.service #停止firewall |
1 | hostnamectl set-hostname drbd1 |
1 | # rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org |
1 | # mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig |
1 | # pvcreate /dev/sdb |
1 | # drbdadm primary drbd0 --force |
1 | # lsblk |
1 | # watch drbdadm status |
1 | # drbdadm resize drbd0 |
# watch drbdadm status# umount /mnt/1 | # mount /dev/drbd0 /mnt |
1 | # mount /dev/drbd0 /mnt |
如果已经在运行了,那可以在运行的机器上挂载另外一块硬盘,新开一台机器,这俩作为drbd的主备,将运行的gitlab data数据rsync到drbd管理的那块盘上即可
然后改一下gitlab的data位置,重启一下或者reconfigure一下即可。
来源: https://stackoverflow.com/questions/6780035/how-to-run-ps-cax-grep-something-in-python
将proc1的输出当作proc2的输入来实现
1 | import subprocess |
在使用 https://github.com/yavijava/yavijava 创建虚拟机的过程中,默认会将虚拟机的兼容性自动设置为ESXI的版本,如在ESXI 6.5上创建的虚拟机,其兼容性则为 ESXi 6.5 及更高版本 (虚拟机版本 13), 这样导致迁移的时候不能将这个虚拟机迁移到小于ESXI 6.5版本的主机上。
在查询很多资料之后,确认可以通过 https://www.altaro.com/vmware/4-ways-to-downgrade-the-vm-hardware-version/ 文中的方法,将虚拟机先从清单中删掉,更改虚拟机的vmx文件,将virtualHW.version改为需要的版本,重新注册虚拟机即可。
在已知了这些方法之后,进行尝试, 发现在初始化虚拟机之后是无法再进行更改的,只有创建的时候设置好才行,如下即可。
1 | vmSpec.setVersion("vmx-10"); # 10 表示 esxi 5.5 |
不管是默认的源还是ustc的都直接提示 Connection failed,但可以ping通。1
2
3
4
5
6
7
8
9
10
11
12
13root@77ec78c7b3b7:/# printf "deb http://mirrors.ustc.edu.cn/debian/ buster main contrib non-free\n#deb-src http://mirrors.ustc.edu.cn/debian/ buster main contrib non-free\ndeb http://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-free\n#deb-src http://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-free\n#deb http://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free\n#deb-src http://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free" > /etc/apt/sources.list
root@77ec78c7b3b7:/# apt update
Err:1 http://mirrors.ustc.edu.cn/debian buster InRelease
Connection failed [IP: 202.141.176.110 80]
Err:2 http://mirrors.ustc.edu.cn/debian buster-updates InRelease
Connection failed [IP: 202.141.176.110 80]
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
W: Failed to fetch http://mirrors.ustc.edu.cn/debian/dists/buster/InRelease Connection failed [IP: 202.141.176.110 80]
W: Failed to fetch http://mirrors.ustc.edu.cn/debian/dists/buster-updates/InRelease Connection failed [IP: 202.141.176.110 80]
W: Some index files failed to download. They have been ignored, or old ones used instead.
更改apt的默认UA
printf 'Acquire\n{\n http::User-Agent "Mozilla/5.0 (Windows NT 5.1; rv:25.0) \nGecko/20100101 Firefox/25.0";\n};' > /etc/apt/apt.conf
未知。。。,在另一个网络环境下就可以,也是神奇。
P.S. 感谢公司大数据部门的同学,让我又可以水一篇了 xD (划掉划掉)
源码地址:https://github.com/sailfish-on-davinci
真机演示:https://www.youtube.com/watch?v=J_3RLota6pY
K20出厂即是Android Pie系统,与其他升级上去的不一样,需要做一些处理
禁用boot校验 avb,然后才可以刷fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img
vbmeta.img 从底包里面提取
… 未完待续
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
Github介绍: https://github.com/fatedier/frp/blob/master/README_zh.md
从这里https://github.com/fatedier/frp/releases 下载最新的二进制安装包,服务端跟客户端都在一个压缩包里。
服务端跟客户端都需要一个配置文件,对于服务端配置文件如下
1 | frps.ini (完整配置文件 https://github.com/fatedier/frp/blob/master/conf/frps_full.ini) |
然后启动只需要一条命令/usr/bin/frps -c /etc/frps/frps.ini
最好做一下守护,如使用systemd托管1
2
3
4
5
6
7
8
9
10
11
12
13$ cat /etc/systemd/system/frps.service
[Unit]
Description=frpc daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/bin/frps -c /etc/frps/frps.ini
Restart=always
RestartSec=1min
ExecStop=/usr/bin/killall frps
[Install]
WantedBy=multi-user.target
客户端同服务端也需要一份配置(frpc.ini),如这里我们做windows的远程桌面映射1
2
3
4
5
6
7
8[common]
server_addr = 47.98.28.15
server_port = 7000
token = your_token
[rdp]
type = tcp
local_port = 3389
remote_port = 3389
上面的server_addr填写服务端的ip,token同服务端的token。
同样一条命令启动./frpc.exe -c frpc.ini
下载一个nssm.exe放到frp的目录下,然后执行下面的命令(注意下对32、64版本)nssm.exe install frpc
接下来会弹出一个框,在path处选择启动frpc的frpc.bat
点击Install service即可
启动 nssm.exe start frpc
首先确保你的windows可以被远程连接。
在外网机器输入 47.98.28.15,然后输入你的用户名密码即可连接。
注意开通服务器跟客户端的3389端口,以及服务端的7000,8888端口。
本文章主要针对 hybris 15.1的移植
mer-hybris的android hybris-15.1是基于lineageos的,所以我们在没有官方/非官方lineageos用的时候,也要找基于lineage的第三方rom,如国内的Mokee,国外的OmniROM等,只需要稍微改一点devicetree就可以用了
目前的解决方法是注释掉这个, 还有可能是没有关闭selinux或者没有初始化sailfish所需要的android init rc文件有关
system/core/init/property_service.cpp, 将72行的exit(1);注释掉
内核部分主要需要注意的是你的设备是否是有 /vendor分区的,project treble的都会有一个单独的/vendor分区,这个需要注意。
可以通过这个里查看 arch/arm/boot/dts/qcom/msm8953.dtsi (根据你自己cpu来区分,找不到的话就用grep找一下)
如下,可以看到有vendor跟system分区单独挂载,这个地方可以看谷歌对system-as-root的说明便于理解
1 | firmware: firmware { |
也可以通过device tree的 fstab.qcom 查看,如果没有,需要加上去(至少在vince上面是这样,因为后面的dhd要靠这个来判断),如我的需要加这两行
1 | /dev/block/bootdevice/by-name/system /system ext4 ro,barrier=1 wait,recoveryonly |
有的设备/dev/block/bootdevice/by-name/system挂载到/下面(对应下面的dhd部分的makefstab_skip_entries),而我的设备/vendor是来自/cust(也是迷 @_@
device tree部分注释掉启用full treble的部分
如我的设备需要把下面这些注释掉,否则selinux的政策文件会安装到/vendor下面,不会在根目录下产生,sfos需要在根下面有。
1 | # Treble |
https://wiki.merproject.org/wiki/Adaptations/faq-hadk 搜索 15.1也会找到一些需要注意的地方
修改dhd的spec文件,添加
1 | # On Android 8 the system partition is (intended to be) mounted on /. |
也不一定全部要加上,我的设备/system,/vendor就不自动挂载,需要改成这样, 可以先不加然后telnet上去看看这里目录下有没有文件吧
1 | %define makefstab_skip_entries /dev/stune /dev/cpuset /sys/fs/pstore /dev/cpuctl |
这样会生成system.mount和vendor.mount,启动systemd的时候会挂载上
对于有些设备可能提示kgsl kgsl-3d0: |_load_firmware| request_firmware(a530_pm4.fw) failed: -2,需要做一个软链到 /lib/firmware
暂无很详细的,主要是看dmesg,journalctl等看看把出错的都修了。
如果可以打通电话但是没有声音,则需要 pulseaudio-modules-droid-hidl 1.0版本(截止2019-09-24),然后配合新的ril配置文件 https://github.com/mer-hybris/droid-config-sony-nile/tree/master/sparse/etc/ofono
看dmesg/logcat/journactl里面是不是有binder的信息,打补丁吧,至于打哪些只能靠猜(大雾
开坑
用官方的ubuntu镜像即可,16.04或18.04都可以,不要用最新的20.04。一般来说启动之后的镜像除了手动指定的目录是持久化的,其他的会重启后失效,所以最好自己做一个镜像,把安卓编译环境安装上。
启动时映射本地目录,当作ANDROID_ROOT目录。
mer MER_BUILD
OBS
gitlab ci