一个人的角落,也许并没人会看到这里~~ 祝福你,工作顺心,学习快乐~

Linux下的日志自动打包分割工具

在VPS上经常需要跑一些程序或脚本,自然会产生出很多日志。 但要是单单为一个几十行代码的程序去加一个日志管理的功能也显得臃肿。

造轮子是不可能造轮子的。

于是,又查了一遍system log相关的内容,有rsyslogd等等, 但不方便使用,而且是系统级别的。 后来发现像nginx,httpd,等等都是有通过一个名为logrotate的工具,自动对日志文件进行整理。

man logrotate

写得有些不知所云,英语是个二把刀。 花了几些时间整理一下用法。 程序功能比较简单,配置文件(/etc/logrotate.d/*)的参数有两大方面:

  • 一是控制日志整理周期,保存方式等等。
  • 二是对原程序的输出做接管,处理(通过kill发送信号量)。

日志输出程序只需输出日志到指定位置既可,其它所有对日志的整理操作由logrotate来完成。


未完,待续。

--:--
--:--

很久不有更新博客了

嗯,刚刚pull了一下博客,发现最后一岾还是5月19号写的。

距离9月7号已经有三个半月了,2018年也俨然过去的3/4,还记得年初的目标吗?

这几个月的经历,仿佛有几年一般,做了些什么?

充实而又放纵?

Ubuntu下如何切换Intel和Nvidia显卡

原文:How To Switch Between Intel and Nvidia Graphics Card on Ubuntu

翻译水平有限,还望批评指正,都㚏2020s了,有关解决方案大家还是自行Google吧。

在笔记本上如何查看核显和N卡是折腾显卡的第一步。这篇文章展示在Ubuntu理如何和谐的切换Intel核显和N卡。

你应该使用哪块显卡?

对于游戏和3D绘图等要求大量图形计算来说,应该切换至N卡。

如果你对游戏和3D绘图不感觉兴趣,那么,Intlel核显将满足你的日常使用,并且比起N卡更省电。

#1 查看电脑上哪些显卡

在Ubuntu下可以非常简单的做这个事:

lspci -k | grep -E -A2 -i 'VGA|3D'

https://www.linuxbabe.com/wp-content/uploads/2016/04/Selection_010-1.png

#2 查看正在使用哪块显卡

Ubuntu 默认会使用Intel核显。

如果你以前对显卡驱动做过改动,又不记得了,那么可以在图形界面下,系统设置 > 细节system settings > details)中查看。

#3 安装Nvidia显卡驱动

Ubuntu本身集成了N卡开源驱动nouveau在Linux内核里,但此驱动缺少3D加速的支持. 要发挥显卡性能,我们可以用software-properties-gtk程序去安装合适的驱动。

Software & Updates_ additional drivers

你可以选择最新的版本,应用更改。

也可以通过下列命令,查看推荐的驱动版本:

 sudo ubuntu-drivers devices

How To Switch Between Intel and Nvidia Graphics Card on Ubuntu

下列命令将会自动安装Nvidia驱动。

sudo ubuntu-drivers autoinstall

在合适的驱动安装成功后,重新打开系统设置 > 细节system settings > details),你将会看到新安装的驱动已经选择上了,如果没有的话,请自行选择,并应用修改。

https://www.linuxbabe.com/wp-content/uploads/2016/04/Software-Updates_013.png

现在我们已经安装好了合适的N卡驱动了,但是,我们仍然在使用Intel核显。

#4 切换到N卡

在你选择好了N卡驱动后,可能需要重启你的电脑,以启用PRIME支持。如果PRIME没有启动,可能会出现下面的信息:

Message: PRIME: is it supported? no

重启之后,可以从应用列表中打开Nvidia X Server Settings,或者从命令行打开:

#: nvidia-settings

NVIDIA X Server Settings_ prime profiles

在PRIME Profiles` 选项卡中,选择你想切换的显卡, 重启电脑。

你就可以在系统设置 > 细节system settings > details)中看到N卡了。

想要切换回Intel核显,只需要在上图中点击Intel即可。

也可以通过命令行的方式,切换到核显:

sudo prime-select intel

或N卡:

sudo prime-select nvidia

查看哪块显卡正在使用:

prime-select query

如何和卸载N卡驱动

有时个你Nvidia安装失败,或者没有成功,黑屏了,没有办法进入图形界面,或者出现以下错误:

driver ebridge is already registered aborting

这种情况你需要完全的卸载N卡驱动,通过运行下列命令,完全移除nvidia相关包:

sudo apt purge nvidia-*
--:--

在学习AZ3166碰到的一些常见问题,贴出来以免新手再绕弯路。

一、Mico开发环境的搭建

Mico开发环境由三部分组成,

  1. Mico Cube : 用于在命令行下对mico-os 编译链接下载,以及对mico-os进行版本管理的工具, 这是个python工具,所以需要使用pip install mico-cube 进行安装,并且需要在环境中安装git,以用于版本管理和os的import。

  2. Micoder:用于编译链接的组件,提供的gcc、gdb等交叉编译调试工具链: 这个需要和mico Cube配合使用,下载解压后, 需要使用 mico config --global micoder D:\MXCHIP\MiCO_SDK\MiCO\MiCoder 进行配置,使得mico可以调用micoder,进行编译,链接,下载。 否则会报错[mico]: can not found micoder

  3. Micoder IDE:用于在图形环境下进行版本管理,开发,还可以进行调试。 需要java运行环境,并且设置好path系统环境参数。 在安装Micoder IDE时会自动附带安装一个mico-os的sdk,

二、AZ3166对应mico-os的配置

在你的项目文件夹下通过命令 mico import mico-demos 从aliyun的git上下载一最新的demos和os

从eclipse中导入mico-demos, 右键根项目(mico-demos) Team->Switch To->Other : Remote Tracking->origin/experiment 右键mico-osTeam->Switch To->Other : Remote Tracking->origin/mico-os-4.0

三、Build Targets

添加编译命令可编译运行下载:

application.wifi_uart@AZ3166 total download run JTAG=stlink-v2-1

这里对解释一下编译命令:

@前面的部分代表要编译的程序所在文件夹,用.代替\表示文件目录的结构层次。

@后面的部分代表要编译使用的板子库型号。

最后,Eclipse IDE,会组合成命令:

mico make application.wifi_uart@AZ3166 total download run JTAG=stlink-v2-1

并在因为只有在根目录中,才能同时相对的找到mico-os和其相关的库文件和程序,否则会报找不到mico-os等等编译错误。

四、添加AZ3166驱动组件

在一个现有的MiCO项目中添加AZ3166组件,并运行附带的示例程序。在进行以下操作之前,先确保MiCO Cude已经正确安装。 导入AZ3166组件

进入一个MiCO项目的根目录,例如:cd helloworld。(如果本地没有现成的MiCO项目,可以使用mico new xxx创建一个项目,或者使用mico import xxx从版本库导入一个项目),
执行指令:mico add https://code.aliyun.com/mico/drv_AZ3166.git,从远程版本库中下载组件并且添加到当前项目。

运行AZ3166示例

1.组件中内置示例程序:drv_AZ3166/demo,执行编译命令。

例如在MXCHIP Microsoft Azure IoT Developer Kit平台AZ3166上:

mico make drv_AZ3166.demo@AZ3166@RTX total download JTAG=stlink-v2-1 run

详细的编译选项参考MiCO Cude

2.程序运行后,在设备OLED显示屏上显示传感器信息,并且在设备串口终端上显示传感器信息,例如:

50885 humidity = 52.90%, temp = 31.30C
50892 magnet =     84,    193,   -207
50899 lps22hb tmep = 32.00C, press = 1010.00hPa
50907 LSM6DSL [acc/mg]:       26,    -104,    1011
50915 LSM6DSL [gyro/mdps]:        0,   -1680,    1260