现在上班有个奇特现象:你能在一个公司工作12年以上,无论你态度多好,多么忠诚,一旦公司盈利不好,那么你就是“眼中钉,肉中刺”

16 四月, 2025


在职场上,老员工总是不受待见,

尤其是当公司效益不好的时候,老同事往往会成为背锅侠。

现在上班有一个奇怪的现象:如果你在一个公司里工作12年以上,无论你多忠诚,迟早是公司的"眼中钉,肉中刺"。

这个比喻一点也不夸张。

很多职场的中年人,正在遭遇被清退处理的厄运。

老员工,是公司的功臣,是伴随着公司发展壮大的。

公司能够有今天的成绩,也是很多老员工多年贡献出来的。

而现在公司的经营情况不好了,订单下降了,

甚至是盈利变成了亏损,当公司开始降本增效的时候,

就开始上演"卸磨杀驴"的经典戏码了。

不管多么忠诚的好员工,也不管曾经的贡献有多大,

年龄大了,就会成为公司的累赘。

一些老板,会认为是这么年龄大的员工拖累了公司的转型和发展。

这个时候,眼中钉,肉中刺的标签,就被牢牢打上了。

保姆级青龙面板忘记密码后找回

13 四月, 2025


首先登陆ssh后台
然后获取docker容器列表:
docker ps
找到列表里有ql、qinglong字眼的,列表最前面就是容器id

root@hi3798mv100:/# docker ps  CONTAINER ID   IMAGE             COMMAND                 CREATED         STATUS        PORTS        NAMES  **46f4202d9552**   registry...   "./docker/docker-ent…"   5 months ago   Up 9 days   0.0.0.0:5......         ql

然后进入容器ssh:
docker exec -it 你的容器ID"" /bin/sh
进去以后ls一下,看看有没有data这个文件夹

root@46f4202d9552:/ql $ ls  LICENSE       README.md  cli     **data**  docker  log           nodemon.json  pnpm-lock.yaml  raw   sample   shell  static              tsconfig.json  version.yaml  README-en.md  back       config  db    jbot    node_modules  package.json  public          repo  scripts  src    tsconfig.back.json  typings.d.ts

cd进去
cd data && ls
应该有个config文件夹,也是cd进去
cd config && ls
看到有个auth.json就vi进去:
vi auth.json
然后应该就能看到了





欢迎投稿(技术分享、原创教程)至本站机器人: blog#mige.eu.org
 

小白写了一个手机扫码配置网络的脚本

14 三月, 2025

这脚本是我用AI写的哈,本人完全不会写哈,只是分享出来大家一起学习。 [有能力的大佬可以完美的优化下。~~~~

怎么上传不了附件

下面是脚本文,保存*.sh 执行就可以了。

#!/bin/bash
确保以 root 用户运行脚本
if [ "$(id -u)" -ne 0 ]; then
echo "此脚本需要 root 权限,请以 root 用户运行。"
exit 1
fi
更新系统并安装必要的软件包
echo "正在更新系统并安装必要的软件包..."
apt-get update
apt-get install -y hostapd dnsmasq python3 python3-pip qrencode wget kmod
安装 Flask
pip3 install flask
配置无线网卡
echo "正在配置无线网卡..."
cat <<EOF > /etc/network/interfaces.d/wlan0
auto wlan0
iface wlan0 inet static
address 192.168.42.1
netmask 255.255.255.0
gateway 192.168.42.1
dns-nameservers 8.8.8.8
EOF
配置 hostapd
echo "正在配置 hostapd..."
cat <<EOF > /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=MyLinuxAP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=123456789
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
EOF
配置 dnsmasq
echo "正在配置 dnsmasq..."
cat <<EOF > /etc/dnsmasq.conf
interface=wlan0
dhcp-range=192.168.42.2,192.168.42.20,255.255.255.0,24h
port=53
server=8.8.8.8
EOF
停止并禁用服务
echo "正在停止并禁用服务..."
systemctl stop hostapd
systemctl stop dnsmasq
systemctl disable hostapd
systemctl disable dnsmasq
取消屏蔽服务
echo "正在取消屏蔽服务..."
systemctl unmask hostapd
systemctl unmask dnsmasq
启动服务
echo "正在启动服务..."
systemctl enable hostapd
systemctl enable dnsmasq
systemctl restart hostapd
systemctl restart dnsmasq
创建 Flask 应用
echo "正在创建 Flask 应用..."
cat <<EOF > /usr/local/bin/app.py
from flask import Flask, request, jsonify, render_template_string
import subprocess
app = Flask(name)
@app.route('/')
def index():
return render_template_string('''
<h1>连接到 WiFi</h1>
<div id="wifi-list"></div>
<script>
fetch('/scan')
.then(response => response.json())
.then(data => {
const wifiList = document.getElementById('wifi-list');
data.forEach(wifi => {
const listItem = document.createElement('div');
listItem.textContent = `\${wifi.ssid} (\${wifi.signal} dBm)`;
listItem.onclick = () => {
const password = prompt(`Connecting to \${wifi.ssid}. Enter password:`);
fetch('/connect', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({ssid: wifi.ssid, password: password})
}).then(response => response.json())
.then(data => alert(data.status === 'success' ? 'Connected!' : 'Failed: ' + data.message));
};
wifiList.appendChild(listItem);
});
});
</script>
''')
@app.route('/scan')
def scan_wifi():
result = subprocess.run(["nmcli", "-t", "-f", "IN-USE,SSID,SIGNAL,SECURITY", "dev", "wifi"], capture_output=True, text=True)
networks = result.stdout.strip().split('\n')
wifi_list = []
for network in networks:
if network.strip():
parts = network.split(':')
wifi_list.append({
'ssid': parts[1].strip(),
'signal': parts[2].strip(),
'security': parts[3].strip()
})
return jsonify(wifi_list)
@app.route('/connect', methods=['POST'])
def connect_wifi():
data = request.json
ssid = data.get('ssid')
password = data.get('password')
if ssid and password:
result = subprocess.run(
["nmcli", "dev", "wifi", "connect", ssid, "password", password],
capture_output=True, text=True
)
if result.returncode == 0:
return jsonify({"status": "success"})
else:
return jsonify({"status": "error", "message": result.stderr})
return jsonify({"status": "error", "message": "Invalid input"})
if name == 'main':
app.run(host='0.0.0.0', port=5001)
EOF
开放相关端口
echo "正在开放相关端口..."
ufw allow 53
ufw allow 5001
ufw allow 80
ufw allow 443
启动 Flask 应用
echo "正在启动 Flask 应用..."
python3 /usr/local/bin/app.py &
生成二维码
echo "正在生成二维码..."
qrencode -o /usr/local/bin/qr.png "http://192.168.42.1:5001"
echo "部署完成!"
echo "请扫描 /usr/local/bin/qr.png 中的二维码以配置 WiFi。"





欢迎投稿(技术分享、原创教程)至本站机器人: blog#mige.eu.org
 

SSH登录发送告警信息到邮箱

前言

自从开放端口到公网后,每次查看SSH日志,总有一堆国外肉鸡在疯狂访问,于是想搞个远程登录报警(可能也什么卵用,但至少被爆破后能知道,可以及时修改密码)。

原理

将自动发送邮件的脚本放到.bashrc中,一旦通过SSH登录,就会自动运行,并获取登录信息发送到对应邮箱上。

方法

步骤一:获取邮箱的应用密码(此处以QQ邮箱为例)

参考链接:https://laowangblog.com/qq-mail-smtp-service.html

步骤二:编写邮件发送脚本,保存为send_email.py

#!/usr/bin/python  # -*- coding: UTF-8 -*-  import smtplib  from email import encoders  from email.header import Header  from email.mime.text import MIMEText  from email.utils import parseaddr, formataddr  import sys    def send_mail(dtime,duser,dip,dhostname):      #基础信息      # from_addr = input("From:")      from_addr = "[email protected]" # 发送邮件地址      password = "xxxxx"  # 邮箱应用密码,步骤一获取      #to_addr = from_addr      to_addr = ["[email protected]"] # 接收邮件地址      # password = raw_input("Password:")      # to_addr = input("To:")      smtp_server = "smtp.qq.com"      mimetex = '[server0x]您的机器:',dhostname,',于:',dtime,',被IP: ',dip,' 以账号:',duser,' 进行登录,请确认是否是本人。'      #构造邮件      msg = MIMEText(''.join(mimetex), 'plain', 'utf-8')      msg['From'] = "{}".format(from_addr)      msg['To']   = ",".join(to_addr)      msg['Subject'] = Header("来自Server Monitor", 'utf-8').encode()      #发送邮件      server = smtplib.SMTP_SSL(smtp_server, 465)      #server.set_debuglevel(1)      server.login(from_addr, password)      server.sendmail(from_addr, to_addr, msg.as_string())      server.quit()    if __name__ == "__main__":      send_mail(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])

步骤三:获取登录信息,并调用邮件脚本,保存为sshrc.sh

#!/bin/sh    #获取登录者的用户名  user=$USER  #获取登录者的IP地址  ip=${SSH_CLIENT%% *}  #获取登录的时间  time=$(date +%F%t%k:%M)  #服务器的IP地址  hostname=$(hostname)  echo "content=$time,$user,$ip,$hostname" > /dev/null 2>&1  /usr/bin/python3 /opt/send_email.py  "$time" "$user" "$ip" "$hostname" > /dev/null 2>&1

步骤四:将sshrc.sh脚本放到.bashrc中,添加前建议先在终端测试一下

运行 vi ~/.bashrc 即可打开,然后在文件末尾处添加 /opt/sshrc.sh > /dev/null
到此全部添加完成,可以关闭终端,然后连接SSH试一下。。。






欢迎投稿(技术分享、原创教程)至本站机器人: blog#mige.eu.org
 

静态托管免费的有哪些?

27 二月, 2025

以下是一些提供 **免费静态网站托管** 的服务平台,适合托管HTML、CSS、JavaScript等静态文件:

---

### 1. **GitHub Pages**
- **特点**:与GitHub集成,支持自定义域名和Jekyll静态网站生成器。
- **免费额度**:每个仓库1GB存储空间,带宽100GB/月。
- **网址**:[https://pages.github.com](https://pages.github.com)

---

### 2. **Netlify**
- **特点**:支持自动化部署、CDN加速、自定义域名和HTTPS。
- **免费额度**:100GB带宽/月,300分钟构建时间/月。
- **网址**:[https://www.netlify.com](https://www.netlify.com)

---

### 3. **Vercel**
- **特点**:专注于前端框架(如Next.js),支持自动部署和CDN加速。
- **免费额度**:100GB带宽/月,1000分钟构建时间/月。
- **网址**:[https://vercel.com](https://vercel.com)

---

### 4. **Surge**
- **特点**:简单易用,支持命令行部署和自定义域名。
- **免费额度**:无限带宽,单个项目最大50MB。
- **网址**:[https://surge.sh](https://surge.sh)

---

### 5. **Render**
- **特点**:支持静态网站和动态应用托管,提供免费HTTPS和CDN。
- **免费额度**:100GB带宽/月,500分钟构建时间/月。
- **网址**:[https://render.com](https://render.com)

---

### 6. **Cloudflare Pages**
- **特点**:与Cloudflare CDN集成,支持快速部署和自定义域名。
- **免费额度**:500次构建/月,无限带宽。
- **网址**:[https://pages.cloudflare.com](https://pages.cloudflare.com)

---

### 7. **Firebase Hosting**
- **特点**:由Google提供,支持实时数据库和云函数集成。
- **免费额度**:1GB存储空间,10GB带宽/月。
- **网址**:[https://firebase.google.com](https://firebase.google.com)

---

### 8. **GitLab Pages**
- **特点**:与GitLab集成,支持自定义域名和静态网站生成器。
- **免费额度**:每个仓库10GB存储空间,400分钟构建时间/月。
- **网址**:[https://docs.gitlab.com/ee/user/project/pages](https://docs.gitlab.com/ee/user/project/pages)

---

### 9. **Fleek (基于IPFS)**
- **特点**:支持IPFS分布式存储,适合去中心化应用。
- **免费额度**:1GB存储空间,50GB带宽/月。
- **网址**:[https://fleek.co](https://fleek.co)

---

### 10. **Tiiny.host**
- **特点**:简单易用,适合快速部署小型静态网站。
- **免费额度**:单个项目最大5MB。
- **网址**:[https://tiiny.host](https://tiiny.host)

---

### 选择建议
- **个人项目或博客**:GitHub Pages、Netlify、Vercel。
- **小型项目或测试**:Surge、Tiiny.host。
- **去中心化应用**:Fleek。
- **企业级需求**:Firebase Hosting、Cloudflare Pages。

根据项目需求选择合适的托管平台,注意免费额度的限制。