据说:FreeBSD 12.2之前编译器采用的是CLANG的编译器。

FreeBSD13.1采用的是:LLVM Clang 11编译器构建出来的。[LLVM+CLANG]

理念上讲先进有好处,但是一些旧的硬件机型还是旧的好,
做DHCP和域名解析啥的场景建设采用FreeBSD12.2更稳定。[有老硬件有关]

编译器对旧硬件的亲和性是软硬件稳定性的重要考量因素![新硬件装13吧]
tldr,tldr全称Too long, Don’t read,翻译成中文就是[太长不读]。tldr根据二八原则将命令的常用场景给出示例,让人一看就懂。


tldr tar

From:https://www.cnblogs.com/xingxia/p/npm_tldr.html
More:https://www.hi-linux.com/posts/16098.html

mac安装并使用tldr:
https://blog.csdn.net/weixin_49268249/article/details/120403250

tldr ln

ln

Creates links to files and directories.
More information: <https://www.gnu.org/software/coreutils/ln>.

- Create a symbolic link to a file or directory:
    ln -s /path/to/file_or_directory path/to/symlink

- Overwrite an existing symbolic link to point to a different file:
    ln -sf /path/to/new_file path/to/symlink

- Create a hard link to a file:
    ln /path/to/file path/to/hardlink
下午发现服务器风扇一直转,然后 top 看了下,发现一个叫'systemdd-dev'的程序把 cpu 跑满了。
#uptime
22:53:21 up 46 days,  3:57,  1 user,  load average: 10.48, 10.73, 10.82

top看到:
一个叫'systemdd-dev'的程序把 cpu 跑满了。
polkitd  1310107    7584 99 7月23 ?       55-10:12:06 /tmp/.lib/systemdd-dev

ls /tmp/.lib/systemdd-dev
ls: 无法访问'/tmp/.lib/systemdd-dev': 没有那个文件或目录

strace -f -p 1310107
[pid 1366321] sched_yield()             = 0
[pid 1366320] sched_yield()             = 0
[pid 1366325] sched_yield()             = 0
[pid 1366328] sched_yield()             = 0


polkitd  1310107    7584 99 7月23 ?       55-09:43:59 /tmp/.lib/systemdd-dev

polkitd:x:998:996:User for polkitd:/:/sbin/nologin


#cat /proc/1310107/status
Name:   systemdd-dev
Umask:  0022
State:  S (sleeping)
Tgid:   1310107
Ngid:   0
Pid:    1310107
PPid:   7584
TracerPid:      0
Uid:    998     998     998     998
Gid:    998     998     998     998
Mems_allowed_list:      0
voluntary_ctxt_switches:        1498969
nonvoluntary_ctxt_switches:     119



解决办法:
从上面进程的父亲进程号:7584得知是git,于是定位到容器。
#ps -ef|grep 7584
root        7584    7541  0 6月12 ?       00:00:00 /bin/bash /assets/wrapper
root        8523    7584  0 6月12 ?       00:00:18 runsvdir -P /opt/gitlab/service log: .........................................................................................................................
root       11249    7584  0 6月12 ?       00:00:00 /bin/bash /opt/gitlab/bin/gitlab-ctl tail
root      925975  898775  0 22:52 pts/4    00:00:00 grep --color=auto 7584
polkitd  1309744    7584  0 7月23 ?       00:03:21 /bin/bash /tmp/.lib/systemdd-udevd
polkitd  1309748    7584  0 7月23 ?       00:00:17 /var/opt/gitlab/gitlab-workhorse/java
polkitd  1310107    7584 99 7月23 ?       55-10:12:06 /tmp/.lib/systemdd-dev

docker ps -a
1b1a3af4b528   gitlab/gitlab-ce           "/assets/wrapper"        15 months ago   Up 6 weeks (healthy)   0.0.0.0:8226->22/tcp, 0.0.0.0:8341->80/tcp, 0.0.0.0:8848->443/tcp   gitlab

docker stop 1b1a3af4b528

uptime   #负载下来了
23:01:18 up 46 days,  4:05,  1 user,  load average: 0.09, 2.41, 6.67

可能有黑客入住容器?
背景:干了十年模糊了英文的月份、周,特别是缩写,像rpmbuild打包的日志必须要缩写对,像Git提交日期都是英文的月份,所以这个英文是绕不开的,得捡起来,怎么捡起来先从Unix/Linux操作系统的cal 命令开始入门最好了。
rpmbuild打包:https://jackxiang.com/post/9689/
#rpmbuild  -ba openresty-1.19.9.1.el7.x86_64.spec  
错误:%changelog 没有按照时间顺序降序排列  
  
%changelog  
* Tue Mar 8 2022 dong xiang <xiangdong@staff.cntv.com>  
- Initial  openresty rpm package  
  
* Wed Feb 15 2017  1.11.2.5-%(date +%y%m%d%H%M%%S)  
-update openresty to 1.11.2.5


Git log:
git log index.html
Author: yuchangchun <yuchangchun @staff.xxxx.cn>
Date:   Thu May 26 17:06:22 2022 +0800  【Thu May】

    打包demo环境

最终,结论:export LC_TIME="zh_CN.UTF-8",变中文,设置export LC_TIME="en_US.UTF-8"立即变英文。

Mac终端默认是中文:
export LC_TIME="en_US.UTF-8"
cal -y  #显示全年,也就知道了是5月周2。

~/.oh-my-zsh/.alias   设置zsh快捷键
alias scal='export LANG=en_US.UTF-8 && cal -y'


export LANG=zh_CN.UTF-8
echo $LANG
zh_CN.UTF-8

cal
cal
      七月 2022
日 一 二 三 四 五 六
                1  2
3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31


export LANG=en_US.UTF-8
cal
     July 2022
Su Mo Tu We Th Fr Sa
                1  2
3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31


locale -a  #列出所有支持的公共位置串里找到en_US.UTF-8
locale
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=


中文
LANG="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_ALL=



[程序员不高兴] 说:蓝奏云下载地址::https://wwm.lanzouy.com/i5Yh2050755i

官网:https://effidit.qq.com/

网页版本:
https://effidit.qq.com/demo

更多操作:
https://mp.weixin.qq.com/s/mBF_PDF-Hp62N0Ji7pfyUQ
crontab这个定时工具单对于日期默认颗粒度是“单”,也就是单天,单周,单月等等,但是如果需要每双周发送一次消息,那么原生态的crontab就做不到了。
正确的写法是:

echo $(date +\%W)   #date +\%W获取当前的周数
17

expr `date +\%W` \% 2    #一般用于整数值计算使用expr做算术运算
1



这个规则的意思就是每双周的周五11点59分,启动DINGdingBot这个脚本。

先说expr,这是一个计算命令,一般用于整数值,比如expr 14 % 9,返回就是5。那么这个脚本的意思就很明白了,先用date +\%W获取当前的周数,如果可以被2整除,就是0,0可以执行后面的语句,如果不能被2整除,那么后面的语句也就不会执行。其实说白了,就是每周五的11点59分,判断一下当前周数是否是2的倍数,如果是就可以去执行脚本,如果不是就无视掉。

最后推荐一个好网站可以查看crontab的效果:
https://tooltt.com/crontab-parse/
另一个工具感觉弱一点,但是验证(50 9 8-14,22-28 * 5好像又是对的,和此文作者说的不符合。):
https://www.matools.com/crontab

,不过这个网站只能看基础的crontab配置,想玩花就不行了。

摘自:https://brucewayne2099.github.io/2020/09/12/%E6%AF%8F%E4%B8%A4%E5%91%A8%E6%89%A7%E8%A1%8C%E4%B8%80%E6%AC%A1%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/
解决办法:
进入单用户 #fsck -p
#shutdown -r now

实践:
应该是直接进入单用户模式了:

vim /etc/fstab      #(dum=0, pass#=0),之前都是1,全改为0。


  学习的BSD的教材上,作者明确指出不要用reboot和halt执行重启和关机动作,那样系统不会执行rc.shutdown脚本导致不能在文件系统上设立“清除”标记,下次开机时系统会自动调用FSCK来检查文件系统一的。



异常掉电可能引起磁盘分区被标记为dirty,默认地,系统下一次启动时会运行fsck进行分区检查和错误恢复。如果fsck过程中某个操作需要用户干预或确认,而现在的应用没有使用显示器和键盘鼠标,启动过程可能无法继续进行。
1、编辑/etc/fstab,将分区标记为无须检查(dum=0, pass#=0),详见man fstab
2、编辑/etc/rc.conf,添加以下内容:
      fsck_y_enable="YES"
      fsck_background="NO"            

這個檔案用來定義開機時要掛入的檔案分割區。

# 裝置名稱  掛入點  檔案系統   參數  Dump   Pass#
/dev/ad0s1b  none  swap  sw 0  0
/dev/ad0s1a / ufs rw 1 1

原文链接:https://blog.csdn.net/ncdawen/article/details/574279


掛入點就是你要將來源掛到什麼地方,其中 swap 沒有掛入點,所以是 none。
檔案系統就是要掛入的類型,必須在 kernel 中有定義。一般 FreeBSD 的檔案是 ufs,硬碟要掛入的設定就是 ufs。如果是 cdrom 就是

cd9660。
ufs 本地的 UNIX 檔案系統。
mfs 本地的 memory-based UNIX 檔案系統。
nfs 和 Sun Microsystems 相容的 "Network File System"。
swap 用來作 swapping 的檔案系統。
msdos DOS 相容的檔案系統。
cd9660 CD-ROM 的檔案系統。
procfs 用來存取執行程序(process)的檔案系統。
kernfs 用來存取核心參數(kernel parameter)的檔案系統。
原文链接:https://blog.csdn.net/ncdawen/article/details/574279
理解谁干的,有可能是nm干的,或者黑客干的,极有可能是CentOS8引入两个管理网络的network和NetworkManager都启动后“打架”干的。

实际上这俩都开了:
systemctl  status network
● network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; generated)
   Active: active (exited) since Sat 2022-03-26 05:56:48 CST; 9min ago
#systemctl  status NetworkManager
● NetworkManager.service - Network Manager
   Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2022-03-26 05:56:41 CST; 9min ago
     Docs: man:NetworkManager(8)
Main PID: 2465 (NetworkManager)
只开network的步骤:
一、都禁用:
systemctl mask network
Created symlink /etc/systemd/system/network.service → /dev/null.

systemctl mask NetworkManager
Created symlink /etc/systemd/system/NetworkManager.service → /dev/null.

二、启用一个:
/usr/lib/systemd/systemd-sysv-install enable network
#下面提示怎么启用:
systemctl enable network
network.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable network

三、测试NetworkManager 被彻底禁用了:
systemctl start NetworkManager
Failed to start NetworkManager.service: Unit NetworkManager.service is masked.

mask彻底禁用systemctl服务:
https://blog.csdn.net/stpice/article/details/104569146/

----------------------------------------------------------
cd /etc/sysconfig/network-scripts/ifcfg-lanbr0
#cat ifcfg-
ifcfg-eno1    ifcfg-lanbr0  ifcfg-lo      

在桥接的网卡lanbr0新增:
/etc/sysconfig/network-scripts/
DNS1=202.106.196.115
DNS2=114.114.114.114

重启动后,会将/etc/resolv.conf的配置重新刷成上面的(测试过删除一行:nameserver 114.114.114.114,重启后会自动加上):
#cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 202.106.196.115
nameserver 114.114.114.114

#cat ifcfg-eno1
DEVICE="eno1"
ONBOOT="yes"
BRIDGE="lanbr0"

#cat ifcfg-lanbr0
DEVICE="lanbr0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="10.10.0.1**"
NETMASK="255.255.255.0"
GATEWAY="10.10.0.1"
DNS1=202.106.196.115
DNS2=114.114.114.114
Centos重新启动网络配置文件,/etc/resolv.conf被覆盖或清空问题解决
cat short-if.go


go build short-if.go  
./short-if
1
SpaceX

./short-if
2
Virgin Galactic

./short-if
0
Space Adventures


如果不加:
        rand.Seed(time.Now().Unix())

其值一直是:2

原因是:https://blog.csdn.net/weixin_33816821/article/details/94581126


Go语言的switch语法学习之num的简短声明也可用于switch语句的一部分:


./short-switch
Virgin Galactic

./short-switch  
Random spaceline # 4


cat scope-rules.go   #几月有多少天的一个判断:



./scope-rules
AD 2018 10 24


        default:
            day := rand.Intn(31) + 1
            fmt.Println(era, year, month, day)
        }
        fmt.Println(month,day)  //作用域不再有了。
go build scope-rules.go      
# command-line-arguments
./scope-rules.go:22:14: undefined: month
./scope-rules.go:22:20: undefined: day


包括switch的每个case也是都拥有自己独立的作用域,每个分支里面的day变量在分支结束后,day变量将不再处于作用域之内,switch分支的作用域是唯一一种无需使用大括号标识的作用域。


cat random-date.go



#./random-date
AD 2018 11 30

#./random-date
AD 2018 11 30


研究下闰年:
cat random-date-study.go


./random-date-study
AD 2000 2 18
AD 2000 2 4
AD 2000 2 6
AD 2000 2 8
AD 2000 2 7
AD 2000 2 21
AD 2000 2 7
AD 2000 2 29
AD 2000 2 12
AD 2000 2 12
下载:
https://golang.google.cn/dl/go1.17.8.linux-amd64.tar.gz
完成之后解压到/usr/local
tar -C /usr/local -xzf go1.17.8.linux-amd64.tar.gz

打开环境变量文件
vi /etc/profile.d/golang.sh
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/root/go
export PATH=$PATH:$GOPATH/BIN

刷新环境变量
source /etc/profile.d/golang.sh
Centos8 不在维护,第三方的镜像站中均已移除CentOS 8的源,yum install 会报错建议更换源。
备份旧的:
cd /etc/yum.repos.d/
mv CentOS-Base-aliyun-8.repo CentOS-Base-aliyun-8.repo.bak
mv CentOS-Base.repo CentOS-Base.repo.bak


下载新的:
wget https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo -O /etc/yum.repos.d/Centos-vault-8.5.2111.repo
wget https://mirrors.aliyun.com/repo/epel-archive-8.repo -O /etc/yum.repos.d/epel-archive-8.repo
yum clean all && yum makecache



下载:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo
yum install -y epel-release
yum clean all
rpm --rebuilddb
yum update
yum list
yum makecache


来自:https://www.ngui.cc/article/show-390936.html
curl -v -d'1)杰克。
2)杰克\r\n3)杰克东
3)你是谁 "a" "b"
                 [空行的空格全是下划]
4)jack    ' x.xxxx.com


来自:https://blog.csdn.net/zhaozhi406/article/details/11131971
https://www.xknote.com/blog/1127037.html


背景:有时你想测试一下传说中的微服务如熔断,服务器的接口超时(尤其是上传姑且叫大文件),这个rpm包应该是有用的。
限速
wondershaper是国外人开发的一款在Linux内核下基于TC工具的对整块网卡的限度工具。

第一种安装方法
首先下载wondershaper的rpm安装包:wondershaper-1.1a-7.noarch.rpm

安装wondershaper:
[root@localhost ~]# rpm -ivh wondershaper-1.1a-7.noarch.rpm


第二种安装方法
由于Centos7第三方库内才有这个软件,先安装第三方库
yum install epel-release -y
yum install wondershaper -y
限速命令:
第一个参数为网卡接口名,后面两个数字分别代表上行和下行的速度(单位Kb)

[root@localhost ~]# wondershaper eth0 5000 500
取消限速:

[root@localhost ~]# wondershaper clear eth0

来自:https://www.shuzhiduo.com/A/LPdo61bg53/
     Alfred是Mac下一个非常强大的工具,网上有许多如何使用的教程,我目前也只是会使用一些基本功能。其中一个我特别喜欢的功能就是直接可以在Alfred里面输入shell命令(默认需要在命令前家>符号,表示是shell命令),然后就会自动打开终端执行。但这里有个问题就是Alfred默认使用Mac自带的Terminal,而大多数在Mac经常使用终端的一般都会使用iTerm2,因为它配合zsh+oh my zsh,真的是非常强大。对于目前最新的iTerm 3.x版本,可以通过如下方法将Alfred内置的Terminal改为iTerm2:

打开Alfred的"Preferences->features->Terminal/shell",将"Application"选为"custom",然后将下面的编辑框中的脚本内容替换为下面的


需要注意的是不同的iTerm2版本脚本内容不太一样,该脚本适用于最新的iTerm2版本,即iTerm2 3.0.

实践来自:https://www.cxymm.net/article/qq_29855509/120960802
分页: 1/270 第一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]