Linux 小笔记
此笔记记录 Linux 下的一些命令使用技巧,作为工作中的备忘。
- 导入数据库时跳过某个表
- 找出最近修改、创建的文件
- 自动压缩旧日志文件的shell脚本
- Linux 初始化 SSH 会话慢的解决方法
- Crontab 控制脚本运行时间段
- rsync 只同步匹配的目录文件
- Ubuntu 下切换 PHP 版本
- ttyACM 插入后被占用问题
- P52 Manjaro 外接显示器输出问题
- Manjaro zsh 新标签页保持路径
导入数据库时跳过某个表¶
有时我们需要将某天的数据库备份恢复到内网的机器,用来分析数据,但备份中的某些很大的表对我们的数据分析作用不大,却要占用大量的导入时间(譬如session表,message表),我们可以用简单的sed命令跳过对这些表的插入操作。
1 |
|
找出最近修改、创建的文件¶
以下命令可以用来简单的检查最近目录下哪些文件被修改过。
1 2 3 |
|
自动压缩旧日志文件的shell脚本¶
logrotate 是 Linux 自带的日志分割压缩工具,但它有个比较让人不爽的缺点就是无法精确的按时间点分割(譬如日志严格的按天)。因此考虑App日志直接按 ×××-Y-m-d.log的方式来按天记录,然后用crontab定时压缩。
下面是自动gzip压缩多个目录下log文件,并且自动跳过当天文件的shell脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Linux 初始化 SSH 会话慢的解决方法¶
使用ssh登录Linux服务器,就算是在内网环境中,也需要等待比较长的时间才弹出密码输入界面。
检查:
ssh -vvv 加上 v参数,通过分析ssh打印的debug信息,即可找到时间消耗的环节。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
可能原因:
服务端 /etc/ssh/sshd_config,修改 "UseDNS no"
客户端 /etc/ssh/ssh_config,修改 "GSSAPIAuthentication no"
Crontab 控制脚本运行时间段¶
Cronjob 通常用来在指定时间点运行某个命令(脚本),而有时我们不但需要定时启动脚本,还需要定时关闭,譬如需要在空闲时段备份服务器文件到新机器。
我们可以使用两个cronjob,一个定时启动,一个定时关闭,或者使用类似下面的脚本,启动后后台运行一个进程,通过获取时间来定时关闭:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
rsync 只同步匹配的目录文件¶
通常我们的图片、文件会根据某中规则(譬如2016-09-09)的格式存储在文件系统中,有时我们需要将适合某个
1 |
|
Ubuntu 下切换 PHP 版本¶
偶尔需要维护一些旧项目,而这些项目无法做到php7兼容,此时就需要安装多个PHP版本,并且用类似下面的命令进行切换
1 |
|
ttyACM 插入后被占用问题¶
最近在调试 STM32 的 USB 功能的过程中发现,将 STM32 插入电脑的 USB 口后 STM32 模拟出来的串口 ttyACM0 会被占用,使用 lsof 也看不出问题,十几秒中后又会自动释放。
后来将 USB 口收到的数据包 printf 出来后发现是一堆 AT 指令,看了一下系统进程发现一个可以的 ModemManager。
Google 了一下,大概就是 ModemManager 检测到 ttyACM* 接入后会尝试进行通讯,看对方是否为合法的 Modem。
解决方法:将 ModemManager 禁用,或者将设备 id 加入忽略列表。
P52 Manjaro 外接显示器输出问题¶
按官方文档安装相关软件后,修改 /etc/bumblebee/xorg.conf.nvidia
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Manjaro zsh 新标签页保持路径¶
Manjaro 下默认配置的 zsh,当使用 ctrl-T 打开新标签时,会自动将路径变成用户主目录,会稍微影响效率,修改 ~/.zshrc , 增加下面配置行,可以使新标签依然保持原路径:
1 |
|