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被覆盖或清空问题解决
下载:
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
背景:有时你想测试一下传说中的微服务如熔断,服务器的接口超时(尤其是上传姑且叫大文件),这个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
ps只能看到部分:
root      3195  2205  0 Jun19 ?        00:00:13 containerd-shim -namespace moby -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/moby/0a8be205faf5aa1500e55e83e36a3027c626ae

cat查看:
#cat /proc/3195/cmdline
containerd-shim-namespacemoby-workdir/var/lib/containerd/io.containerd.runtime.v1.linux/moby/0a8be205faf5aa1500e55e83e36a3027c626aea234747a51c949ffb1a9f95c83-address/run/containerd/containerd.sock-containerd-binary/usr/bin/containerd-runtime-root/var/run/docker/runtime-runc-systemd-cgroup



二、执行程序的软链接:
#ls -lart /proc/3195/exe
lrwxrwxrwx 1 root root 0 Jun 25 10:06 /proc/3195/exe -> /usr/bin/containerd-shim



三、环境变量:
#cat /proc/3195/environ
LANG=en_US.UTF-8PATH=/opt/containerd/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/binLD_LIBRARY_PATH=:/opt/containerd/libGOMAXPROCS=2



四、对应的fd编号:
#ls /proc/3195/fd
0  1  10  11  12  13  14  15  16  17  18  19  2  20  3  4  5  6  7  8  9

mac下面sudo su - 后出现:
sudo su
Password:
[Oh My Zsh] Would you like to update? [Y/n]: y
Updating Oh My Zsh
error: 不能变基式拉取:您有未暂存的变更。
error: 请提交或贮藏它们。
There was an error updating. Try again later?

最后我的解决办法是:
cd  ~/.oh-my-zsh/

git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。

尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git restore <文件>..." 丢弃工作区的改动)
  类型变更: plugins/fedora/fedora.plugin.zsh
  类型变更: plugins/go/go.plugin.zsh
  类型变更: plugins/gradle/_gradle
  类型变更: plugins/gradle/_gradlew
  类型变更: plugins/per-directory-history/per-directory-history.plugin.zsh

git reset --hard origin/master #强制让本地的代码和远端一致
HEAD 现在位于 08da19e3 emacs: revert cab1ac6e682038b2ceca9d16f8c458c0e79149ca (#7765)

git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。

git pull
remote: Enumerating objects: 9644, done.

root@bogon# upgrade_oh_my_zsh
Note: `upgrade_oh_my_zsh` is deprecated. Use `omz update` instead.
Updating Oh My Zsh
From https://github.com/ohmyzsh/ohmyzsh
* branch              master     -> FETCH_HEAD
Current branch master is up to date.
         __                                     __
  ____  / /_     ____ ___  __  __   ____  _____/ /_
/ __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \
/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / /
\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/
                        /____/

Oh My Zsh is already at the latest version.
To keep up with the latest news and updates, follow us on Twitter: https://twitter.com/ohmyzsh
Want to get involved in the community? Join our Discord: https://discord.gg/ohmyzsh
Get your Oh My Zsh swag at: https://shop.planetargon.com/collections/oh-my-zsh


参考:https://www.chendalei.com/articles/2018/10/09/1539052284615.html
提示:

Updating Oh My Zsh
error: cannot pull with rebase: You have unstaged changes.
error: please commit or stash them.
There was an error updating. Try again later?

这种情况很可能发生,因为您已经在.oh-my-zsh目录中编辑了一些内容但尚未提交。

导航到该目录(.oh-my-zsh/目录)。
运行git status。 它应该显示已更改的文件列表。
使用git add暂存这些文件
使用git commit -m提交这些更改
你现在应该可以升级了。

可选:在步骤2之后,您可以运行git commit -a -m,它应该暂存所有未暂存的文件并提交这些更改(组合步骤3和4)。
然后通过upgrade_oh_my_zsh命令升级zsh。

参考来源:https://github.com/robbyrussell/oh-my-zsh/issues/1984
此次学习来源:https://mp.weixin.qq.com/s/YqZI4XUlsyPpaGIjy0pG3A
#cat p.c


#./p
value= 520

cat pp.c

#./pp


cat ppp.c

#./ppp
value0 = 1
value1 = 2
value2 = 3
temp[0] = 1
temp[1] = 2
temp[2] = 3

以前的学习:
https://jackxiang.com/post/7485/
问题:


rpm -qa *langpack*

cat /etc/locale.conf
LC_ALL="zh_CN.utf8"
LC_CTYPE="zh_CN.utf8"
LANG="zh_CN.utf8"

解决办法:
yum install glibc-langpack-zh -y
一、现象


Linux关机或重启时提示A stop job is running for ..


导致关机慢。


二、解决方法


编辑/etc/systemd/system.conf


修改下面两个变量为:


DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s
执行:systemctl daemon-reload



来自:https://blog.csdn.net/penge199761/article/details/79136826
质数定义:只有1和它本身两个约数,除此之外再没有其它约数。

示例1:

make zs
cc     zs.c   -o zs

#./zs
质数

示例2:


for循环介入:


引入scanf:



#./zs
5
质数
#./zs
6
合数

打印出约数:



#./zs
5
质数
#./zs
6
2 3 合数

更快一点,引入break:



#./zs
6
合数
#./zs
1000
合数



任一大于2的偶数都可以写成两个质数之和,采用部分穷举法,可以从1-100,1-10000啥的,但无法穷举所有:


#./zs
100
4=2+2
6=3+3
8=3+5
10=3+7
12=5+7
14=3+11
16=3+13
18=5+13
20=3+17
22=3+19
24=5+19
26=3+23
28=5+23
30=7+23
32=3+29
34=3+31
36=5+31
...
背景:mac 的 Finder 中文件夹的显示选项只在当前目录生效,每次新目录都得重新选择显示选项,强迫症表示非常不爽,下面是如何一次性更改所有文件夹显示选项的方法。

打开 Finder,使劲点击 ⌘ + ↑ 数次,直到没反应可查看到磁盘的图标为止。
进入磁盘,右键空白处打开 查看显示选项 ,在显示选项内调整好自己想要的效果后点击下方 用作默认 。
打开终端界面输入以下命令,回车后根据提示输入你的账户密码再回车等待即可。

sudo find / -name .DS_Store -exec rm {} +
完成后,点击菜单栏左上角的小苹果图标选择 强制退出 ,在菜单内选择 Finder 后点击 重新开启 完成。

链接:https://juejin.cn/post/6844903688939667463
分页: 1/39 第一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 下页 最后页 [ 显示模式: 摘要 | 列表 ]