 MAKRER=SHOW_LOCALE;printf $MAKRER""; locale; MAKRER=SHOW_LOCALE;printf $MAKRER"";
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
echo '<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Privacy Policy</title>
</head>
<body>
    <h1>Privacy Policy</h1>
    <p>This is a sample privacy policy page. Replace this text with your actual privacy policy content.</p>
</body>
</html>' > privacy_policy.html
sudo mv privacy_policy.html /var/www/html/
ls -ld /var/www/html
sudo mkdir -p /var/www/html
sudo mv privacy_policy.html /var/www/html/
ls
sudo netstat -tuln | grep ':80'
sudo ufw status
sudo iptables -L -n | grep ':80'
sudo systemctl status nginx
sudo systemctl status apache2
sudo yum list nginx
curl --head --max-time 10 http://nginx.org
cat /etc/yum.repos.d/nginx.repo
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 2>/dev/null || echo "No existing CentOS-Base.repo to backup"
echo -e "[nginx-stable]\nname=nginx stable repo\nbaseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/\ngpgcheck=1\nenabled=1\ngpgkey=https://nginx.org/keys/nginx_signing.key" | sudo tee /etc/yum.repos.d/nginx.repo
sudo yum -y install nginx
curl -O https://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz && cd nginx-1.24.0
sudo yum -y groupinstall "Development Tools" && sudo yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
sudo yum -y groupinstall "Development Tools" && sudo yum -y install gcc make pcre pcre-devel zlib zlib-devel openssl openssl-devel
sudo sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/nginx.repo && sudo yum clean all && sudo yum -y groupinstall "Development Tools" && sudo yum -y install gcc make pcre pcre-devel zlib zlib-devel openssl openssl-devel
cd nginx-1.24.0 && ./configure
ls -l
./configure
make
sudo make install
echo -e "[Unit]\nDescription=The NGINX HTTP and reverse proxy server\nAfter=network.target\n\n[Service]\nType=forking\nExecStartPre=/usr/local/nginx/sbin/nginx -t\nExecStart=/usr/local/nginx/sbin/nginx\nExecReload=/usr/local/nginx/sbin/nginx -s reload\nExecStop=/bin/kill -s QUIT \$MAINPID\nPrivateTmp=true\n\n[Install]\nWantedBy=multi-user.target" | sudo tee /etc/systemd/system/nginx.service
sudo systemctl daemon-reload
sudo systemctl enable nginx && sudo systemctl start nginx
curl -I http://your-server-ip/privacy-policy
curl -I http://123.456.789.012/privacy-policy
curl -I http://www.example.com
curl -I http://your-server-ip/privacy-policy
curl -I http://203.0.113.1/privacy-policy
sudo netstat -tuln | grep ':80'
ls -l /usr/share/nginx/html/privacy-policy
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
echo '<!DOCTYPE html>
<html>
<head>
    <title>Privacy Policy</title>
</head>
<body>
    <h1>Privacy Policy</h1>
    <p>This is a sample privacy policy page. Replace this content with your actual privacy policy.</p>
</body>
</html>' | sudo tee /var/www/html/privacy_policy.html > /dev/null
sudo nginx -t && sudo systemctl reload nginx
which nginx
sudo apt install nginx -y
sudo yum install nginx -y || sudo dnf install nginx -y
mkdir -p user_agreement && echo '<!DOCTYPE html>
<html>
<head>
    <title>User Agreement</title>
</head>
<body>
    <h1>User Agreement</h1>
    <p>This is a sample user agreement page. Replace this content with your actual user agreement.</p>
</body>
</html>' > user_agreement/index.html
npx http-server user_agreement -p 80 -s &
curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash - && sudo apt-get install -y nodejs
cat /etc/os-release
sudo dnf install -y nodejs
npx http-server user_agreement -p 80 -s &
ls
ip addr show | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1
ping -c 4 www.aliyun.com
ld
ls
cd user_agreement/
ls
cat index.html 
sudo systemctl stop nginx
cd user_agreement && sudo npx http-server -p 80
find / -type d -name "user_agreement" 2>/dev/null
cd /home/admin/user_agreement && sudo npx http-server -p 80
ls
cat index.html 
npx http-server user_agreement -p 80 -s > /dev/null 2>&1 &
sudo kill $(sudo lsof -t -i:80) || true
sudo lsof -i:80
sudo systemctl stop ahd && sudo systemctl disable ahd
sudo kill -9 $(sudo lsof -t -i:80) || true
npx http-server user_agreement -p 8080 -s > /dev/null 2>&1 &
sudo systemctl stop nginx && sudo systemctl stop apache2 || true
sudo systemctl stop nginx && sudo systemctl disable nginx || true
npx http-server user_agreement -p 80 -s > /dev/null 2>&1 &
sudo firewall-cmd --list-all
sudo netstat -tuln | grep :80
cd /home/admin/user_agreement && sudo npx http-server -p 80 -a 0.0.0.0
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
帮我改下网页内容为以下:^[
## 隐私协议
### 1. 信息收集
我们尊重您的隐私，不会收集您的任何个人信息。应用仅在本地存储您的录音文件、收藏列表和设置偏好。
### 2. 数据使用
您的录音文件和收藏列表仅存储在您的设备本地，不会上传到任何服务器。您完全控制自己的数据。
### 3. 录音权限
应用需要麦克风权限才能录制音频。该权限仅用于录音功能，不会在后台录音或收集其他音频信息。
### 4. 分享功能
当您使用分享功能时，应用会调用系统分享接口，将您选择的内容分享到其他应用。我们不会收集或存储分享内容。
### 5. 第三方服务
应用可能使用系统提供的第三方服务（如分享功能），这些服务有其独立的隐私政策。
### 6. 数据安全
我们采取合理的安全措施来保护您的数据安全。但由于数据存储在您的设备本地，建议您定期备份重要内容。
### 7. 儿童隐私
应用不专门针对儿童，也不会故意收集儿童的个人信息。如果发现收集了儿童信息，我们会立即删除。
### 8. 隐私政策更新
我们可能会不时更新本隐私政策。更新后的政策将在应用内发布，请您定期查看。
### 9. 联系我们
如果您对本隐私政策有任何疑问或建议，请通过应用内的反馈功能联系我们。
### 10. 生效日期
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
ssh user@8.134.188.18
sudo nano /var/www/html/index.html
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
curl -o temp.html http://8.134.188.18/ && vim temp.html
 MAKRER=SHOW_LOCALE;printf $MAKRER""; locale; MAKRER=SHOW_LOCALE;printf $MAKRER"";
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
http://8.134.188.18/
curl -o /dev/null -s -w "%{http_code}" http://8.134.188.18/
ping -c 4 8.134.188.18
nc -zv 8.134.188.18 80
echo 'quit' | telnet 8.134.188.18 80
sudo iptables -L -n
sudo netstat -tuln | grep ':80'
ls
nohup npx http-server ./user_agreement > server.log 2>&1 &
sudo nohup npx http-server ./user_agreement -p 80 > server.log 2>&1 &
cd user_agreement/
ls
pwd
 MAKRER=SHOW_LOCALE;printf $MAKRER""; locale; MAKRER=SHOW_LOCALE;printf $MAKRER"";
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
whoami; id; cat /etc/os-release; command -v docker || true; command -v nginx || true; command -v node || true; command -v git || true; ss -lntp; df -h /; free -h
sudo -n id -u
git ls-remote --heads https://gitee.com/fio5517/mdskills.git
mkdir -p /home/admin/mdskills-upload; printf '%s' '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' | base64 -d > /home/admin/mdskills-upload/mdskills-sync-service-0.1.0.tgz; sha256sum /home/admin/mdskills-upload/mdskills-sync-service-0.1.0.tgz
set -e; cd /tmp; curl -fsSLO https://nodejs.org/dist/v24.15.0/node-v24.15.0-linux-x64.tar.xz; curl -fsSLO https://nodejs.org/dist/v24.15.0/SHASUMS256.txt; grep ' node-v24.15.0-linux-x64.tar.xz$' SHASUMS256.txt | sha256sum -c -; sudo mkdir -p /opt/mdskills-node; sudo tar -xJf node-v24.15.0-linux-x64.tar.xz -C /opt/mdskills-node --strip-components=1; sudo ln -sf /opt/mdskills-node/bin/node /usr/local/bin/node; sudo ln -sf /opt/mdskills-node/bin/npm /usr/local/bin/npm; node --version; npm --version
sudo dnf install -y nginx
 MAKRER=SHOW_LOCALE;printf $MAKRER""; locale; MAKRER=SHOW_LOCALE;printf $MAKRER"";
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
ls -l /home/admin/nginx-1.24.0/objs/nginx /usr/local/nginx/sbin/nginx 2>/dev/null || true; find /home/admin/nginx-1.24.0 -maxdepth 2 -type f -name nginx -o -name configure | head
 MAKRER=SHOW_LOCALE;printf $MAKRER""; locale; MAKRER=SHOW_LOCALE;printf $MAKRER"";
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
node --version; sha256sum /home/admin/mdskills-upload/mdskills-sync-service-0.1.0.tgz; ls -l /home/admin/nginx-1.24.0/objs/nginx /usr/local/nginx/sbin/nginx 2>/dev/null || true
sudo /usr/local/nginx/sbin/nginx -V 2>&1; sudo sed -n '1,240p' /usr/local/nginx/conf/nginx.conf; sudo ss -lntp | grep -E ':80|:443' || true
sudo mkdir -p /opt/mdskills-sync /var/lib/mdskills-sync; sudo tar -xzf /home/admin/mdskills-upload/mdskills-sync-service-0.1.0.tgz -C /opt/mdskills-sync; sudo chown -R admin:admin /opt/mdskills-sync /var/lib/mdskills-sync; printf '%s' 'W1VuaXRdCkRlc2NyaXB0aW9uPW1kc2tpbGxzIHN5bmMgc2VydmljZQpBZnRlcj1uZXR3b3JrLW9ubGluZS50YXJnZXQKV2FudHM9bmV0d29yay1vbmxpbmUudGFyZ2V0CgpbU2VydmljZV0KVHlwZT1zaW1wbGUKVXNlcj1hZG1pbgpHcm91cD1hZG1pbgpXb3JraW5nRGlyZWN0b3J5PS9vcHQvbWRza2lsbHMtc3luYwpFbnZpcm9ubWVudD1OT0RFX0VOVj1wcm9kdWN0aW9uCkVudmlyb25tZW50PUhPU1Q9MTI3LjAuMC4xCkVudmlyb25tZW50PVBPUlQ9ODc4NwpFbnZpcm9ubWVudD1NRFNLSUxMU19TWU5DX0RBVEFCQVNFPS92YXIvbGliL21kc2tpbGxzLXN5bmMvbWRza2lsbHMtc3luYy5kYgpFeGVjU3RhcnQ9L3Vzci9sb2NhbC9iaW4vbm9kZSAvb3B0L21kc2tpbGxzLXN5bmMvc3JjL3NlcnZlci5tanMKUmVzdGFydD1vbi1mYWlsdXJlClJlc3RhcnRTZWM9MwpOb05ld1ByaXZpbGVnZXM9dHJ1ZQpQcml2YXRlVG1wPXRydWUKCltJbnN0YWxsXQpXYW50ZWRCeT1tdWx0aS11c2VyLnRhcmdldAo=' | base64 -d | sudo tee /etc/systemd/system/mdskills-sync.service >/dev/null; sudo systemctl daemon-reload; sudo systemctl enable --now mdskills-sync; sleep 2; sudo systemctl --no-pager --full status mdskills-sync
 MAKRER=SHOW_LOCALE;printf $MAKRER""; locale; MAKRER=SHOW_LOCALE;printf $MAKRER"";
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
cat >/etc/systemd/system/mdskills-legacy-http.service <<'EOF'
[Unit]
Description=Legacy static site
After=network-online.target

[Service]
Type=simple
User=admin
Group=admin
WorkingDirectory=/home/admin
ExecStart=/usr/local/bin/http-server -a 127.0.0.1 -p 8080 /home/admin
Restart=on-failure
RestartSec=3

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
sudo -i
 MAKRER=SHOW_LOCALE;printf $MAKRER""; locale; MAKRER=SHOW_LOCALE;printf $MAKRER"";
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
bt 14
sudo -i
 MAKRER=SHOW_LOCALE;printf $MAKRER""; locale; MAKRER=SHOW_LOCALE;printf $MAKRER"";
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
sudo -i
 MAKRER=SHOW_LOCALE;printf $MAKRER""; locale; MAKRER=SHOW_LOCALE;printf $MAKRER"";
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
 MAKRER=SHOW_LOCALE;printf $MAKRER""; locale; MAKRER=SHOW_LOCALE;printf $MAKRER"";
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
bt status
sudo bt default
cd /root
ls -lh mdskills-sync-final-20260720.tar.gz
sha256sum mdskills-sync-final-20260720.tar.gz
mkdir -p /tmp/mdskills-sync-deploy
tar -xzf mdskills-sync-final-20260720.tar.gz -C /tmp/mdskills-sync-deploy
cp -a /opt/mdskills-sync /opt/mdskills-sync.backup-20260720
rsync -a   --exclude='.env'   --exclude='data/'   --exclude='node_modules/'   /tmp/mdskills-sync-deploy/mdskills-sync-final-20260720/   /opt/mdskills-sync/
cd /opt/mdskills-sync
bash deploy-aliyun.sh
sudo -i
 MAKRER=SHOW_LOCALE;printf $MAKRER""; locale; MAKRER=SHOW_LOCALE;printf $MAKRER"";
 CHECK_TYPE=SHELL; echo "INFO=${CHECK_TYPE} PID=$$ PPID=$PPID TTY=$(tty) SHELL=$0 HOME=$HOME PWD=$PWD| CHECK_SHELL_END"
sudo -i
