0%

MacOS安装Homebrew 官方网站Homebrew

1
2
3
4
# 安装
bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
# 卸载
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

Ps: ==很多情况会出现安装失败的问题,其实是因为下载的站点在国外,如果有代理会好点,但是也有可能下载站点拥塞导致下载失败,不要着急慢慢下载就行了。大概回报错,类似于这样== curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

brew很慢的解决方案

创建HomeBrew文件夹

首先确保/usr/local/Homebrew文件夹不存在,存在的话删除

1
2
rm -rf /usr/local/Homebrew 
sudo mkdir /usr/local/Homebrew

git克隆

随便选择哪一个都可以不要重复执行,大概3-5分钟吧,网速很不好的话会很慢。尽量网速稳定的时候在操作

1
sudo git clone https://mirrors.aliyun.com/homebrew/brew.git /usr/local/Homebrew 

创建软连接

rm -rf 可以不用执行,只要你之前没有操作过的话。如果报错mkdir: /usr/local/Homebrew: File exists 就必须要执行

1
2
sduo rm -rf /usr/local/bin/brew 
sudo ln -s /usr/local/Homebrew/bin/brew /usr/local/bin/brew

创建core文件夹并再次git克隆

1
2
3
sudo rm -rf /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core 
sudo mkdir -p /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
sudo git clone https://mirrors.aliyun.com/homebrew/homebrew-core.git /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core

授权

为当前用户授权能够访问的权限

1
2
3
4
5
6
sudo chown -R $(whoami) /usr/local/Homebrew
# 替换 homebrew-bottles:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile

回退默认源

1
2
3
4
5
# 退回到默认的源
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core.git

常用的brew命令

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
32
# 更新 
brew update
# 自检
brew doctor
# 列出当前所有的brew的软件包
brew list
# 安装
brew install [包名]
# 安装git
brew install git
# 更新所有
brew upgrade
# 更新指定包
brew upgrade [包名]
# 清理所有包的旧版本
brew cleanup
# 清理指定包的旧版本
brew cleanup [包名]
# 查看可清理的旧版本包,不执行实际操作
brew cleanup -n
# 查询可更新的包
brew outdated
# 锁定某个包
brew pin $FORMULA
# 取消锁定
brew unpin $FORMULA
# 卸载
brew uninstall [包名]
# 卸载git
brew uninstall git
# 查询可用包
brew search [包名]

语句流程控制

条件选择if(if语句可以进行嵌套)

  • 单分支
    1
    2
    3
    if  判断条件;then
    条件为真的分支代码
    fi
  • 双分支
    1
    2
    3
    4
    5
    if  判断条件; then
    条件为真的分支代码
    else
    条件为假的分支代码
    fi
  • 多分支
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if  判断条件 1 ; then
    条件为真的分支代码
    elif 判断条件 2 ; then
    条件为真的分支代码
    elif 判断条件 3 ; then
    条件为真的分支代码
    else
    以上条件都为假的分支代码
    fi
    Ps:这是一个测试例子
1
2
3
4
5
6
7
8
9
10
根据命令的退出状态来执行命令
if ping -c1 -W2 station1 &> /dev/null; then
echo 'Station1 is UP'
elif grep "station1" ~/maintenance.txt &> /dev/null
then
echo 'Station1 is undergoing maintenance‘
else
echo 'Station1 is unexpectedly DOWN!'
exit 1
fi

case语句

条件判断和函数结合可以Linux系统脚本经常出现

  case 变量引用 in
  PAT1)
          分支1
          ;;
  PAT2)
          分支2
          ;;
  ...
  *)
          默认分支
          ;;
  esac

PS:这个是具体的例子

1
2
3
4
5
6
 #! /bin/bash
case $1 in
1) echo "你输入了1";;
2) echo "你输入了2";;
*) echo "你输入了其他";;
esac

算术运算

(1)bash 中的算术运算:

help let +, -, *, /, % 取模(取余), ** (乘方)

(2)实现算术运算:

  • (1) let var= 算术表达式
  • (2) var=$[ 算术表达式]
  • (3) var=$(( 算术表达式))
  • (4) var=$(expr arg1 arg2 arg3 …)
  • (5) declare –i var = 数值
  • (6) echo ‘ 算术表达式’ | bc
  • (7) 乘法符号有的场景需要转义*
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@localhost ~]# num1=1
[root@localhost ~]# num2=2
[root@localhost ~]# let sum=${num1}+${num2} && echo $sum
3
[root@localhost ~]# echo $[${num1}+${num2}]
3
[root@localhost ~]# echo $((${num1}+${num2}))
3
[root@localhost ~]# mult=$(expr ${num1} \* ${num2})
[root@localhost ~]# echo $mult
2
[root@localhost ~]# declare -i var=${num1}+${num2} && echo $sum
3
[root@localhost ~]# echo "${num1}+${num2}" | bc
3

(3)增强型赋值:+=, -=, *=, /=, %=

let var OPER value

例如:

1
2
3
4
5
6
7
8
9
10
11
自增,自减:
let var+=1
let var++
let var--
[root@localhost ~]# var=0
[root@localhost ~]# let var+=1 && echo $var
1
[root@localhost ~]# let var++ && echo $var
2
[root@localhost ~]# let var-- && echo $var
1

最近小白学习了shell脚本的基础编程,感觉有必要对最近所学知识进行一次简单的总结,所以写了这一篇博客,可能会有所不足。请大家指正,后期在学习过后,会进行完善的。
下面先说下shell登陆的两种方式

交互式登录:

  • 直接通过终端输入账号密码登录
  • 使用“su - UserName” 切换的用户
    执行顺序:/etc/profile --> /etc/profile.d/*.sh -->~/.bash_profile --> ~/.bashrc --> /etc/bashrc
阅读全文 »

逻辑运算

与运算

1 与 与 1 = 1
1 与 与 0 = 0
0 与 与 1 = 0
0 与 与 0 = 0

或运算

1 或 或 1 = 1
1 或 或 0 = 1
0 或 或 1 = 1
0 或 或 0 = 0

非运算 !

! 1 = 0
! 0 = 1
阅读全文 »

Linux-MySQL密码强度设置

1
2
3
eg:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
ERROR 1819 (HY000): Your password does not satisfy the current policy requiremen

MySQL在5.6.6版本之后增加了密码强度验证插件validate_password相对来说比较严格。
如果不满足对应的密码强度,会提示错误,拒绝执行.

处理方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 查看mysql全局参数配置
mysql> select @@validate_password_policy;
+----------------------------+
| @@validate_password_policy |
+----------------------------+
| MEDIUM |
+----------------------------+
1 row in set (0.00 sec)


mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
6 rows in set (0.08 sec)

参数说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
validate_password_dictionary_file
插件用于验证密码强度的字典文件路径。

validate_password_length
密码最小长度,参数默认为8,它有最小值的限制,最小值为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

validate_password_mixed_case_count
密码至少要包含的小写字母个数和大写字母个数。

validate_password_number_count
密码至少要包含的数字个数。

validate_password_policy
密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。有以下取值:
Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

validate_password_special_char_count
密码至少要包含的特殊字符数。

修改mysql参数配置

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
mysql> set global validate_password_policy=0;  
Query OK, 0 rows affected (0.05 sec)

mysql>
mysql>
mysql> set global validate_password_mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_number_count=3;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_special_char_count=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password_length=3;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file | |
| validate_password_length | 3 |
| validate_password_mixed_case_count | 0 |
| validate_password_number_count | 3 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 0 |
+--------------------------------------+-------+
6 rows in set (0.00 sec)

验证

1
2
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');  
Query OK, 0 rows affected, 1 warning (0.00 sec)

LVS的简单介绍

LVS:Linux Virtual Server,负载调度器,集成内核
官网:http://www.linuxvirtualserver.org/
VS: Virtual Server,负责调度
RS: Real Server,负责真正提供服务
L4:四层路由器或交换机
工作原理:VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS

阅读全文 »

实验设备:4台相同版本服务器

环境要求:

iptables -F
setenforce 0

实验说明:

webserver 1:192.168.192.138
webserver 2:192.168.192.106
lesserver 1:192.168.192.106
lvsserver 2:192.168.192.105

阅读全文 »