关于NTFS文件系统在ubuntu中变成只读的解决办法

事情是这样的, 最近virtualbox 启动对应在ntfs分区的系统时 报VERR_VD_IMAGE_READ_ONLY 错误。
虚拟机启动不了, 原因是分区只读,那么只要解决了这个只读的问题就可以了。
一般,重新进入到 windows系统, 让windows 正常关机 后 就可以了,不想再进windows 直接解除这个只读状态,方法如下:

sudo umount -a
sudo ntfsfix /dev/sdaxx
sudo mount -a

再执行,虚拟机顺利启动
注:/dev/sdaxx 这里 主要用 df -h 看只读的是那个设备

钉钉 linxu GLIBC_2.29 中文输入的问题

钉钉出linux版本,非常好, 但是在ubuntu下用默认 的输入法框架ibus 是没法 输入中文的 ,这个反馈过钉钉,但是一直没有解决,后在网络上搜索解决办法 ,找到了解决办法。
主要是这个文件 /opt/apps/com.alibabainc.dingtalk/files/Elevator.sh

export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE="fcitx"
export QT_QPA_PLATFORM=xcb 

主要是这里指定了 fcitx

所以我把这3行注释了 就可以输入中文了,
网上的 是 改 fcitx 为 ibus

还有如果启动时候的报错

./libm.so.6: version `GLIBC_2.29' not found (required by /lib/x86_64-linux-gnu/libcairo.so.2)

这个问题其实只要删除

/opt/apps/com.alibabainc.dingtalk/files/1.3.0-Release.20214/ 
libm.so.6 这个文件删除  即可

tsocks 让运行的软件走代理

sudo apt install tsocks

安装后 修改配置文件 vi /etc/tsocks.conf

server = 127.0.0.1
server_port = 1688  #端口号为自己对应的

在运行的软件 前加上tsocks 就可以让网络走代理
比如

tsocks wget http://google.com/file

祝使用愉快

nginx 伪静态带来的好处

伪静态最基本就是 url的转发 即 301 / 302 跳转
以下讲2个应用场景:
1.微信支付的回调,接收微信服务器发送的支付确认信息的数据的url不能带参数 比如:

pay.com/?port=1 

port代表支付端口(比如有多个商户收银),这时候用伪静态就能很好的解决这个问题

pay.com/1/ 这样就可以把自己定义的参数传递过来了。

对应的 规则:

rewrite ^/pay/([0-9]+)$ /wx/pay/pay/notify.php?port=$1 last;

2.巨量广告平台 落地页
落地页 一般都会静态化即将动态的内容生成静态文件.html
自定义url的参数,和实际生成的 html做一定的关联,可以

rewrite ^/(\w+).htm?(.*)$ /index.php?id=$1 last;

$host = $_SERVER['HTTP_HOST'];
$dm = explode('.', $host);
if ($_GET['id']) {
    $dm[0] = "m" . $_GET['did'];
}if (strpos($dm[0], '-')) {
    $ddmm = explode('-', $dm[0]);
    $dm[0] = $ddmm[0] . "-" . $ddmm[1];
}
if (!empty($dm[0])) {
    echo file_get_contents($dm[0] . ".html");
}

Linux 下 超大文件的编辑

应用场景:在此之前我也没有想到我会为了编辑一个54G大的 sql备份文件而想的头昏脑胀,线上有一个 大概120G的数据库,通过使用mysqldump 导出然后压缩 得到一个 16G的压缩文件,然后传出到本地,再解压,就得到了一个 54G的超大文件。

往常,通过使用 mysql -uroot -p dbname< back.sql 就可以顺利恢复了,不过问题就出在这里, 恢复的时候报了一个错误,大概的意思是 不支持 ngram插件

本地是一个 群晖的NAS 安装了MariaDB套件,即兼容mysql的一个产品,然而他并不支持 ngram (全文索引),这可如何是好啊?

不要急不要燥,该如何导入这个数据进数据库呢, 既然他不支持,那么删除掉这个 定义的语句 即可。

说干就干, vi back.sql

等的我花都谢了, 还在读文件,读54G 的文件。。。。 尝试sed 替换相应的内容, 这里进展不顺利。

这里不得不说, vi 操作 大文件还是很有用的, 只是操作 54G,太为难他了, 那就小一点,他总可以了吧。

尝试了各种 想直接编辑的方法都失败了 ,不得不退而求其次了,那就是把54打散切割, 再合并。

split -C 1024M /volume1/g.sql sql
vi sqlaa  #操作对应的内容后,保存退出
cat sql*> db.sql

不过经过实测,mysql -uroot -p dbname< back.sql 导入到MariaDB速度比较慢, 导入了2天,也还没导入完整,上次我记得是导入到mysql还挺快的。还有 一种办法通过 source 导入,进入mysql后通过mysql的终端 输入 source /sql文件的路径; 等待完成。