0%

让你的Mac睡的更香

最近Mac的睡眠让我感到不太舒服,明明已经合上盖子拔掉电源,可是它还在熬着夜!不好好睡觉真让人生气!

所以得好好调教一下,让他该睡觉的时候老老实实趴下,该干活的时候就得全力以赴工作。

Mac是怎么睡觉的

Mac有两种睡觉有两个阶段,一开始是睡眠,在一定条件之后会从睡眠进入休眠。这两种睡觉方式就像我们人的小憩和睡大觉。小憩醒得快,睡大觉醒的就会慢一些。

在长时间无操作,或者把Macbook的盖子合上时以及手动点击进入睡眠时则进入睡眠状态,在睡眠状态下数据存储在内存中,此时的系统可以被快速唤醒,快速恢复到睡眠前的状态。

如果睡眠持续了一段时间之后,Mac会根据设定进入更深一层的休眠状态,此时Mac要根据你的配置来决定要不要把内存中的数据写入到磁盘中,然后会放弃对内存及设备的大部分供电,达到更加节省电量的目的。如果在休眠模式下唤醒,则Mac会将保存在硬盘中的数据再重新写入到内存之中并恢复程序运行,这样的话耗时比较长,速度比较慢。

pmset工具

Apple 提供了一个工具叫pmset来管理Apple 设备的电源选项。pmset这个工具的名字来源于 Power Manager Setting(pmset) ,通过调整macos的睡眠计划,可以让Mac睡的更香。

pmset用法

sudo pmset [-选项] <参数>

实例:

  • pmset -g cap: 查看当前供电方式下可以调节的参数
  • pmset -g custom : 查看全部供电方式下的电源参数信息
  • pmset restoredefaults : 还原自定义的设置

pmset常用选项

  • pmset -a : 全局调整睡眠电源计划
  • pmset -c : 仅调整外部供电时睡眠计划
  • pmset -b : 仅调整电池供电时睡眠计划
  • pmset -g : 查看当前供电方式下的睡眠计划

常用参数

  • sleep: 睡眠计时器,进入睡眠所需要的时间
  • hibernatemode: 睡眠模式
    • hibernatemode = 0 将数据保存在内存中持续为内存供电 非笔记本机器默认配置
    • hibernatemode = 3 safe sleep模式,数据保存在内存中并写入内存镜像到硬盘中备份。笔记本默认模式
    • hibernatemode = 25 将内存镜像直接写入到硬盘中
  • standby: 休眠计时器
  • highstandbythreshold: highstandbythreshold(电池剩余电量百分比)它是standbydelay模式选择阈值,默认 50% 电量。
    • 高于阈值,采用standbydelayhigh计算时间。
    • 低于阈值,采用standbydelaylow计算时间。
  • gpuswitch: 这个参数用来管理独立显卡的选择
    • gpuswitch=0 只使用集成显卡
    • gpuswitch=1 只使用独立显卡
    • gpuswitch=2 自动切换显卡

其他参数

  • lidwake:开盖时是否唤醒
  • tcpkeepalive:合盖时是否保存网络连接
  • displaysleep:屏幕休眠时间
  • disksleep:硬盘休眠时间
  • acwake:被同一 iCloud ID 下的设备唤醒

我的个人参数

外部供电环境下:

外部供电睡眠设置使用的是默认参数。

外部电源供电-2020-07-15

电池供电:

电池供电-2020-07-15

// 20分钟后睡眠
sudo pmset -b sleep 20

// 休眠模式使用3,在给内存供电的同时写入内存的镜像备份到磁盘中
sudo pmset -b hibernatemode 3

// 显示器15分钟后关闭
sudo pmset -b displaysleep 15

// 硬盘30分钟后休眠
sudo pmset -b disksleep 30

// 休眠后断网
sudo pmset -b tcpkeepalive 0

// 开盖唤醒
sudo pmset -b lidwake 1

// 关闭被同一 iCloud 下的设备唤醒
sudo pmset -b acwake 0

// gpuswitch 0 在使用电池的情况下只使用核心显卡
sudo pmset -b gpuswitch 0

// 在电池剩余电量高于75%的情况时,休眠计时器设定为2小时。低于75%的情况下1小时后进入休眠。
sudo pmset -b highstandbythreshold 75
sudo pmset -b standbydelayhigh 7200
sudo pmset -b standbydelaylow 3600

参考文章:

https://sspai.com/post/61379

Ansible 学习文档

Ansible自动化运维学习。大部分操作及示例基于RHEL8实现。

文档未进行过任何校对和查错,目前仅用于个人学习使用。文档中可能会包含错误,请您雅正,谢谢。

最近一次的更新日期:2020年6月27日

本次更新内容:继续完成《Ansible 常用模块》 ⭕️

近期持续更新Ansible常用模块。

文档列表

更新日志

2020年6月27日

  • 继续完成《Ansible 常用模块》 ⭕️

2020年6月22日

  • 完成《Ansible 技巧之场》✅

2020年6月18日

  • 修复《Ansible 任务控制》中部分Markdown解析错误

2020年6月16日

  • Ansible角色 ✅
  • 添加部分刚刚没有同步到文档中的内容
  • 添加软件包管理模块使用

Splunk 数据搜索和报表

Splunk 是?

Splunk是机器数据分析平台,他可以收集并处理所有有机器产生的日志数据,在Splunk中可以做到”any data from any source”。我们作为管理员可以使用Splunk生成这些数据的报表、仪表盘等,赋予这冰冷枯燥日志数据的新生。

搜索是Splunk核心功能之一,基本上近乎所有的功能都是由搜索展开的。充分挖掘这些数据并从中获得有价值的信息,这让我想起在泥沙中淘金的感觉。从基本的报表和仪表,再到数据模型和功能完备的Splunk应用程序,这些都是由Splunk搜索在后台提供着支撑。

Splunk使用自己的搜索语言(SPL)。SPL有很多搜索指令,其中大部分包含有多种函数,参数和字句。

阅读全文 »

42Team Flask框架

前排提示

《42Team-Flask框架》系列教程仅限大连东软信息学院网络中心所属的42Team社团内部使用,该系列文档属于内部资料,仅用于所有42Team社团成员学习使用。

最近一次的更新日期:2020年4月24日

本次更新内容:请求与响应

阅读全文 »

How to install RHEL8(Centos) on Dell R710/R610 server

When I install RHEL8.x I cound’t discover my RAID Controller’s devices on Install Storage set-up optional.When I try to google find the resolutions I know a large number of storage controller device’s drivers has been removed from RHEL8,which means the Dell R710/R610 installed H700 RAID controller card won’t be supported RHEL 8.X natively.

Nevertheless you can still install RHEL8 on these machines with use of driver update disk(DUD).

Setup DUD

Using this link below ,you are specifically looking for the megaraid_sas drivers.

dmesg | grep raid
[ 3.702959] megaraid_sas: loading out-of-tree module taints kernel.
[ 3.703082] megaraid_sas: module verification failed: signature and/or required key missing - tainting kernel
[ 3.705684] megaraid_sas 0000:03:00.0: FW now in Ready state
[ 3.705687] megaraid_sas 0000:03:00.0: 63 bit DMA mask and 32 bit consistent mask
[ 3.705915] megaraid_sas 0000:03:00.0: firmware supports msix : (0)
[ 3.705918] megaraid_sas 0000:03:00.0: current msix/online cpus : (1/16)
[ 3.705919] megaraid_sas 0000:03:00.0: RDPQ mode : (disabled)
[ 3.750024] megaraid_sas 0000:03:00.0: controller type : MR(512MB)
[ 3.750027] megaraid_sas 0000:03:00.0: Online Controller Reset(OCR) : Enabled
[ 3.750029] megaraid_sas 0000:03:00.0: Secure JBOD support : No
[ 3.750030] megaraid_sas 0000:03:00.0: NVMe passthru support : No
[ 3.750032] megaraid_sas 0000:03:00.0: FW provided TM TaskAbort/Reset timeout : 0 secs/0 secs
[ 3.750036] megaraid_sas 0000:03:00.0: megasas_init_mfi: fw_support_ieee=67108864
[ 3.750069] megaraid_sas 0000:03:00.0: INIT adapter done
[ 3.750071] megaraid_sas 0000:03:00.0: Jbod map is not supported megasas_setup_jbod_map 5389
[ 3.795034] megaraid_sas 0000:03:00.0: pci id : (0x1000)/(0x0079)/(0x1028)/(0x1f17)
[ 3.795039] megaraid_sas 0000:03:00.0: unevenspan support : no
[ 3.795041] megaraid_sas 0000:03:00.0: firmware crash dump : no
[ 3.795042] megaraid_sas 0000:03:00.0: jbod sync map : no

If you specific DUD drivers that you need for RHEL8 is below address to download.

https://elrepo.org/linux/dud/el8/x86_64/dd-megaraid_sas-07.707.51.00-1.el8_1.elrepo.iso

When you downloaded the DUD ISO driver.Using the dd to burn it in another USB or DVD media devices.

dd if=dd-megaraid_sas-07.707.51.00-1.el8_1.elrepo.iso of=/dev/sdc

Installation System

The install process is as follows:

  • Download RHEL8.x media file and burn to usb or dev devices media.
  • Download DUD drivers in iso format and burn to usb drive.
  • Boot with both RHEL8 and DUD mounted before booting Install RHEL.
  • Installer should detect the DUD iso and install the proper drivers.

During booting RHEL8 Installer and When you see a countdown on the screen.At this time interrupt the installer with the TAB key and append the following to your boot options last.

inst.dd=/dev/sdb

On my system, the DUD was /dev/sdb and the RHEL8 install media was /dev/sda.

Soon after you can view the RAID Devices find it out.

Install it usually.

Centos8安装Docker失败的解决方案

在Centos8中,默认安装的的容器管理工具是使用了Podman,Podman的设计理念非常好,整合了pod思想,用户可以直接启动容器而不是像Docker那样通过守护进程启动,这样也会提高安全性。但是现在Podman国内使用的人数并不是很多,还会有一些问题出现。所以在Centos8上先将Podman替换为Docker。在Centos8下安装Docker会有container.io的依赖问题,现在来解决一下。

但是要注意的是,在Centos8中使用Docker启动容器的话,容器内默认的网络是不通的,需要简单的配置。在这一篇文章中Centos8安装Docker后容器内无法访问网络提供了解决办法。

简要概括

思路是卸载podman,安装docker-ce的repo源,解决依赖,安装完成,启动服务就是这样了。

卸载podman

dnf remove -y podman

安装docker-ce官方源

首先我们添加docker-ce官方的源,这样才能用到最新版本的Docker。

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

之后更新一下列表和依赖

dnf update -y

如果在update过程中提示添加GPG密钥,yes通过即可。稍稍等待一会吧。

解决依赖问题

如果安装完官方源后,直接安装docker-cecontainerd.io这个包会出现版本依赖的问题,如下:

[root@DELL ~]dnf install docker-ce docker-ce-cli
Last metadata expiration check: 0:09:11 ago on Sat 21 Mar 2020 04:17:47 PM CST.
Error:
Problem: package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
- cannot install the best candidate for the job
- package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
- package containerd.io-1.2.13-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

解决方案有两个,要么安装老版本的docker-ce,要么升级container.io。我肯定选择第二个,问题形成的原因也很简单,官方的repo源里面的container.io版本比较老。我们去下载一个符合版本要求的container.io包。

dnf install -y https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

一条毒奶粉(dnf)命令直接安装目前最新的container.io 包。哦对了,该包来源于Docker官方,下载的是x86_64架构的包。如果你是其他平台,请到这儿里自己来选吧。

安装docker-ce

container.io的依赖问题已经解决完了,接下来直接安装就好了!

dnf install -y docker-ce docker-ce-cli

开启服务

systemctl enable --now docker

成功安装后开启docker守护进程,尝试一下启动一个容器。没有问题的话就是安装成功了。但是要注意的是,如果你发现在容器内部无法访问网络,那么你可以尝试一下用firewalld开启你的IP地址转发功能,具体操作和解决方案在这里Centos8安装Docker后容器内无法访问网络


我是一名Linux初学者,如果你与我一样喜欢折腾,喜欢Linux,那么请加入我的电报群https://t.me/yeefire_blog,在这里畅所欲言,共同学习进步。

Centos8安装Docker后容器内无法访问网络

在Centos8中,默认安装的的容器管理工具是使用了Podman,Podman的设计理念非常好,整合了pod思想,用户可以直接启动容器而不是像Docker那样通过守护进程启动,这样也会提高安全性。但是现在Podman国内使用的人数并不是很多,还会有一些问题出现。所以在Centos8上先将Podman替换为Docker。

在安装好Docker后,结果没有网络,经过排查发现是没有开启ip转发。正常情况下,Docker会自动开启地址转发。但是,不知道为什么Docker在Centos8中没有开启iptables的地址转发,需要我们使用firewalld防火墙管理工具来手动开启IP地址转发功能。

阅读全文 »

Docker或Podman容器内无法解析DNS问题多种解决方案

新安装了Centos8使用Podman,但是在容器内怎样都无法解析域名DNS。尝试了网上大多数的解决办法依然无效。在当我一筹莫展之时我想到了奥利给叔告诉过我“遇到什么困难,都不要怕!微笑的面对他”!

最终还是想到了是不是firewalld没有开启IP地址伪装(IP转发)功能。三下五除二赶紧执行firewall-cmd --query-masquerade。果然没有开启,开启后解决问题,瞬间晴朗。

下面是我和网络上其他人对于Docker容器内无法解析DNS地址的问题总结。

阅读全文 »