#!/bin/bash
# @Author: admin
# @Date: 2023-11-22 17:20:22
# @Last Modified by: admin
# @Last Modified time: 2023-11-22 20:58:01
# 添加部署脚本
# 首先给脚本执行权限 chmod +x ./deploy.sh
# 使用: ./gitee.sh
# 或: ./deploy.sh www // www为最终发布目录的所属用户
# 源码将发布到 destDir设置的目录下
# read -p "请输入gitee账号 :" username
# while true
# do
# if [ ! -n "$username" ];then
# read -p "必须输入请输入gitee账号 或者q退出:" username
# else
# if [ "$username" = "q" ];then
# exit 0
# else
# break
# fi
# fi
# done
# read -p "请输入gitee密码 :" password
# while true
# do
# if [ ! -n "$password" ];then
# read -p "必须输入请输入gitee密码 或者q退出:" password
# else
# if [ "$password" = "q" ];then
# exit 0
# else
# break
# fi
# fi
# done
echo '--初始化目录--'
# 临时目录,多个仓库应该使用不同的临时目录
tmpDir="$(pwd)/.qqmasterTemp"
# 部署目录不能与脚本所有目录相同
newDir="$(pwd)/qqmaster"
if [ ! -e "$tmpDir" ];then
mkdir "$tmpDir"
fi
if [ ! -e "$newDir" ];then
mkdir "$newDir"
fi
# 代码仓库目录 deploy:gitlab-ci-token修改为部署令牌和密码,也可以是gitlab用户和密码
repository="https://gitee.com/wangzh/qqmaster.git"
# if [ -d $tmpDir ]
# then
# rm -rf $tmpDir
# fi
echo '--拉取代码--'
git clone $repository $tmpDir
echo '--拉取完成--'
#切換分支
echo '--切換分支--'
cd $tmpDir && git checkout dev
echo '--刪除不能覆蓋的文件--'
cd $tmpDir && rm -rf ApiAdmin/.env && rm -rf ApiAdmin/config && rm -rf ApiAdmin/.git && rm -rf ApiAdmin/cert
# 拷贝源码到部署目录
echo '--拷贝源码到部署目录--'
cd $tmpDir && cp -rf "./" $newDir
echo '--为项目赋权--'
cd $newDir && sudo -S chown -R www:www ./* && sudo -S chmod -R 755 ./*
echo '--移除临时目录--'
rm -rf $tmpDir
echo "--发布完成--"
js递归修改数据节点
function formatPrice(list,field,price) {
list.forEach(item => {
item[field] = price//实际处理的代码
if (item.children) {
if (item.children.length === 0) {
delete item.children;
} else if (item.children.length > 0) {
formatPrice(item.children,field,price);
}
}
});
return data;
}
Linux硬盘挂载
输入 lsblk-f 查看所有设备的挂载情况
例如我的是 /dev/sdb
将新添加的硬盘分区 输入命令fdisk /dev/sdb
输入p创建主分区
默认1即可
分区创建好了之后 输入 w 保存退出
分区创建好了之后 将分区格式化 格式化命令 mkfs -t ext4 /dev/sdb
所有操作完成后就可以开始挂载了
mount /dev/sdb /指定文件的路径
挂载完后后设置开机自动挂载
先使用 df -TH 查看硬盘列表
查看挂载的磁盘属性
打开配置文件,写入自动配置
参数说明:
第一列为UUID,此处填写查询到的磁盘分区的UUID
第二列为磁盘分区的挂载目录,可以通过df -TH命令查询
第三列为磁盘分区的文件系统格式,可以通过df -TH命令查询
第四列为磁盘分区的挂载选项,此处通常设置为defaults即可
第五列为Linux dump备份选项
(1) 0表示不使用Linux dump备份。现在通常不使用dump备份,此处设置为0即可。
(2) 表示使用Linux dump备份。
第六列为fsck选项,即开机时是否使用fsck检查磁盘。
(1) 0表示不检验。
(2) 挂载点为(/)根目录的分区,此处必须填写1。
(3) 根分区设置为1,其他分区只能从2开始,系统会按照数字从小到大依次检查下去。
最后保存配置即可
sh脚本拉取线上代码部署网站
#!/bin/bash
# 添加部署脚本
# 首先给脚本执行权限 chmod +x ./deploy.sh
# 使用: ./deploy.sh
# 或: ./deploy.sh www // www为最终发布目录的所属用户
# 源码将发布到 destDir设置的目录下
user=${1:-"none"}
# 当前用户密码,用于sudo提权
sudoPwd=""
# 临时目录,多个仓库应该使用不同的临时目录
tmpDir="$(pwd)/.deploy"
# 部署目录不能与脚本所有目录相同
destDir="$(pwd)/destDir"
# 代码仓库目录 deploy:gitlab-ci-token修改为部署令牌和密码,也可以是gitlab用户和密码
repository="http://deploy:gitlab-ci-token@git仓库地址"
echo '初始化目录'
if [ -d $tmpDir ]
then
rm -rf $tmpDir
fi
echo '拉取代码'
git clone $repository $tmpDir
rm -rf $tmpDir/.git
echo '发布代码'
# 拷贝源码到部署目录
cp -rf $tmpDir $destDir
if [ "$user" != "none" ]
then
if [ "$sudoPwd" = "" ]
then
echo '缺少用户密码'
exit 1
fi
# 修改目录权限
echo "$sudoPwd" | sudo -S chown -R $user: $destDir
fi
echo '移除仓库'
rm -rf $tmpDir
echo '发布完成'
PHP调试函数
- 该函数可以替代var_dump
- 每次使用会输出调用地址
function ds($val,...$param) {
$call_info = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
if (isset($call_info[0]['file'])) {
$call_info = "{$call_info[0]['file']} | {$call_info[0]['line']}";
}else{
$call_info = '';
}
echo "<font size='1'>{$call_info}</font>";
echo "<pre>";
dump($val,...$param);
echo "</pre>";
exit("exit ^");
}
window.open 跳转被拦截替换方案
var form = document.createElement('form');
form.action = 'http://google.com';
form.target = '_blank';
form.method = 'get';
document.body.appendChild(form);
form.submit();
css图片单页
页面就一张图片,无论PC或mobile打开都让图片充满整个屏幕
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>剧本鲨俱乐部!</title>
<style>
*{
margin:0;
padding:0;
}
.box {
width: auto;
height: 100%
}
.box img {
width: 100%;
height: 100%
}
</style>
</head>
<body>
<div class="box">
<img src="photo_2023-06-17_21-49-52.jpg" />
</div>
</body>
</html>
宝塔证书申请失败 Invalid version. The only valid version for X509Req is 0
宝塔申请免费证书失败,提示 Invalid version. The only valid version for X509Req is 0
1 使用下面命令
btpip install pyOpenSSL==22.1.0
btpip install cffi==1.14
2
/www/server/panel/class/acme_v2.py
X509Req.set_version(2) 替换为 X509Req.set_version(0)
然后重启宝塔
搭建ssr
CentOS 6和7/Debian6+/Ubuntu14+ ShadowsocksR/Shadowsocks一键部署管理脚本:
yum -y install wget
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/ss-go.sh && chmod +x ss-go.sh && bash ss-go.sh
- 如果搭建SSR账号,请使用脚本一,目前推荐的SSR参数设置为以下,有利于突破网络封锁,参数如下:
- 加密方式:none 协议:origin 混淆:tls1.2_ticket_auth
- 加密方式:none 协议:auth_chain_a 混淆:tls1.2_ticket_auth
- 如果搭建SS账号,请使用脚本二,加密方式可选aes-256-gcm,或者高阶篇的SS+插件模式(推荐)
- 推荐搭建SSR账号。
安装完成后,快捷管理命令:
bash ssr.sh
input type="range" 滑块
[type="range"] {
border:none !important;
outline: none !important;
-webkit-appearance: none;
appearance: none;
margin: 0;
background-color: transparent;
width: 500px;
}
[type="range"]::-webkit-slider-runnable-track {
height: 4px;
background: #eee;
}
[type="range" i]::-webkit-slider-container {
height: 20px;
overflow: hidden;
}
[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 20px;
height: 20px;
border-radius: 50%;
background-color: #f44336;
border: 1px solid transparent;
margin-top: -8px;
border-image: linear-gradient(#f44336,#f44336) 0 fill / 8 20 8 0 / 0px 0px 0 2000px;
}
<input type="range" name="salary" class="form-control mb-3" step="10" min="1000" max="50000">
效果图