diff --git "a/\351\231\210\351\233\205\345\251\267/20240710-shell\345\205\245\351\227\250.md" "b/\351\231\210\351\233\205\345\251\267/20240710-shell\345\205\245\351\227\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..f58971a2844acc9170256c780f0aad4aaa587244 --- /dev/null +++ "b/\351\231\210\351\233\205\345\251\267/20240710-shell\345\205\245\351\227\250.md" @@ -0,0 +1,26 @@ +## postgresql备份和还原 ++ 还原:psql -h 172.16.90.13 -U postgres -d db1 -f /root/db1.sql + ++ 备份:pg_dump -U postgres -h 172.16.90.13 -d db -f /root/db1.sql + +## Shell 教程 ++ Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 + ++ Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 + ++ Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 + +## 运行 Shell 脚本有两种方法: ++ 1、作为可执行程序 + ++ chmod +x ./test.sh #使脚本具有执行权限 ++ . /test.sh #执行脚本 + ++ 2、作为解释器参数 + ++ 这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如: + ++ /bin/sh test.sh ++ /bin/php test.php + ++ echo 命令用于向窗口输出文本。 \ No newline at end of file diff --git "a/\351\231\210\351\233\205\345\251\267/20240711-shell\343\200\201\345\217\215\345\220\221\344\273\243\347\220\206.md" "b/\351\231\210\351\233\205\345\251\267/20240711-shell\343\200\201\345\217\215\345\220\221\344\273\243\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..be595574f81a7847a88267d183764bf502f6e0e1 --- /dev/null +++ "b/\351\231\210\351\233\205\345\251\267/20240711-shell\343\200\201\345\217\215\345\220\221\344\273\243\347\220\206.md" @@ -0,0 +1,67 @@ +### 反向代理 ++ 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率 + + +### 负载平衡 ++ 负载均衡(Load Balance)的主要作用是采用了负载均衡算法将请求分发到集群模式中的应用服务器上,这样即使某个后台应用服务器挂了,其他应用服务器还可以正常接收请求,实现了高可用,并且集群模式模式下的应用服务器支持纵向扩展,可以应对业务快速增长带来的高并发应用场景~ ++ 原理是每一个请求按时间顺序逐一被分发到不同的应用服务器,如果接收请求的应用服务器挂了,并且请求超过最大失败次数max_fails(1次),则在失效时间fail_timeout(10秒)内不会再转发请求到该节点~ +``` +upstream defaultReverseProxyServer{ + server 192.168.0.1:8080; + server 192.168.0.2:8080; +} +``` + +### shell +#### 命名变量 +``` +shell编程中,定义变量是直接定义的,没有明确的数据类型,shel允许用户建立变量存储数据,但是将认为赋给变量的值都解释为一串字符,如下 +cout=1 # 定义变量 +name="ohuohuo" # 定义变量 +echo $cout # 取变量值 +echo $name # 取变量值 +``` ++ shell中,英文符号"$"用于取变量值 + +#### 如果在变量中使用系统命令,需要加上 " `"符号(ESC键下方),如下所示 ++ DATE1=`date` ++ DATE2=$(date) + +#### 使用变量的时,用英文符号"$"取变量值,对于较长的变量名,建议加上{ }花括号,帮助解释器识别变量的边界,如下 ++ name="test_name" ++ echo "My name is ${name}and you" + +#### 字符串 ++ 获取字符串长度:在对变量进行取值时,使用" # "符号对字符串进行取值 ++ 单引号 ++ 双引号:可以在双引号中使用变量,可以在双引号中使用转移字符 + +#### shell数组 +在 Shell 中,用括号()来定义表示数组,数组中元素用"空格"符号分割开。定义数组的一般形式为: + +#### 一般定义 +``` +array_name=(value1 value2 value3 value4) +``` +#### 多级定义 +``` +array_test=( +value1 +value2 +value3 +value4 +) +``` + +#### 读取数组:和读取变量名相同,使用$符号,需要加上下标名 +``` +valuen=${array_name[n]} +echo ${array_name[@]} # 读取所有 +``` + +#### 取得数组元素的个数 ++ length=${#array_name[@]} # 从头到尾取 +#### 或者 ++ length=${#array_name[*]} # 取所有 +#### 取得数组单个元素的长度 ++ lengthn=${#array_name[n]} # 取特定 \ No newline at end of file