<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Project (项目) &#8211; Eternal Center</title>
	<atom:link href="https://eternalcenter-2021-12.github.io/category/project/feed/" rel="self" type="application/rss+xml" />
	<link>https://eternalcenter-2021-12.github.io/</link>
	<description></description>
	<lastBuildDate>Wed, 29 Dec 2021 16:17:16 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>WordPress 值得使用的主题和插件</title>
		<link>https://eternalcenter-2021-12.github.io/wordpress-theme-plugins/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Mon, 27 Dec 2021 14:26:53 +0000</pubDate>
				<category><![CDATA[Articles (文章)]]></category>
		<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Information Technology (IT) Articles (信息技术类文章)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Personal Website Building (个人网站建设)]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<category><![CDATA[Website Programs (网页程序)]]></category>
		<category><![CDATA[Writings (写作)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=20391</guid>

					<description><![CDATA[主题 Twenty Seventeen Twenty Seventeen 是一个开源的 WordPress 主题，非常适合目录较多的网站，首页能够巧妙地将图片和文字结合在一起。 插件 All In One WP Security All In One WP Security 是一个开源的 WordPress 安全插件，比较全面地对 WordPress 进行安全加强，安装了这个插件以后，基本上就不需要再安装其他安全插件。 Easy WP SMTP Easy WP SMTP 是一个开源的 WordPress 邮件插件，可以实现 WordPress 通过 SMTP 发送邮件。 Simply Static Simply Static 是一个开源的 WordPress 动态网站转静态网站插件，可以将动态网站转换成静态网站。]]></description>
										<content:encoded><![CDATA[
<h2>主题</h2>



<h2 class="has-normal-font-size">Twenty Seventeen</h2>



<p>Twenty Seventeen 是一个开源的 WordPress 主题，非常适合目录较多的网站，首页能够巧妙地将图片和文字结合在一起。</p>



<h2>插件</h2>



<h2 class="has-normal-font-size">All In One WP Security</h2>



<p>All In One WP Security 是一个开源的 WordPress 安全插件，比较全面地对 WordPress 进行安全加强，安装了这个插件以后，基本上就不需要再安装其他安全插件。</p>



<h2 class="has-normal-font-size">Easy WP SMTP</h2>



<p>Easy WP SMTP 是一个开源的 WordPress 邮件插件，可以实现 WordPress 通过 SMTP 发送邮件。</p>



<h2 class="has-normal-font-size">Simply Static</h2>



<p>Simply Static 是一个开源的 WordPress 动态网站转静态网站插件，可以将动态网站转换成静态网站。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[步骤] Linux SSL 证书的生成 （Let&#8217;s Encrypt certbot 版）</title>
		<link>https://eternalcenter-2021-12.github.io/ssl-lets-encrypt-certbot/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 19 Dec 2021 15:12:46 +0000</pubDate>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Basic Guidelines for Website building (网站建设基础指南)]]></category>
		<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Django Service (服务)]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Nginx Security (安全)]]></category>
		<category><![CDATA[Personal Website Building (个人网站建设)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<category><![CDATA[Services (服务)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<category><![CDATA[Website Services (网站服务)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=19886</guid>

					<description><![CDATA[步骤目录： 步骤一：将要申请 Let&#8217;s Encrypt SSL 的域名解析到要进行操作的服务器 IP 地址上 步骤二：安装 certbot 步骤三：使用 certbot 生成 Let&#8217;s Encrypt SSL 证书 步骤四：查看已经生成的 Let&#8217;s Encrypt SSL 证书 步骤五：延期 Let&#8217;s Encrypt SSL 证书5.1 查看 Let&#8217;s Encrypt SSL 证书的延期策略5.2 手动延期 Let&#8217;s Encrypt SSL 证书5.3 自动延期 Let&#8217;s Encrypt SSL 证书 步骤六：Let’s Encrypt SSL 证书的生成限制 具体的操作步骤： 步骤一：将要申请 Let&#8217;s Encrypt SSL 的域名解析到要进行操作的服务器 IP 地址上 （步骤略） &#8230; <p class="link-more"><a href="https://eternalcenter-2021-12.github.io/ssl-lets-encrypt-certbot/" class="more-link">Continue reading<span class="screen-reader-text"> "[步骤] Linux SSL 证书的生成 （Let&#8217;s Encrypt certbot 版）"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h2>步骤目录：</h2>



<h4>步骤一：将要申请 Let&#8217;s Encrypt SSL 的域名解析到要进行操作的服务器 IP 地址上</h4>



<h4>步骤二：安装 certbot</h4>



<h4>步骤三：使用 certbot 生成 Let&#8217;s Encrypt SSL 证书</h4>



<h4>步骤四：查看已经生成的 Let&#8217;s Encrypt SSL 证书</h4>



<h4>步骤五：延期 Let&#8217;s Encrypt SSL 证书<br>5.1 查看 Let&#8217;s Encrypt SSL 证书的延期策略<br>5.2 手动延期 Let&#8217;s Encrypt SSL 证书<br>5.3 自动延期 Let&#8217;s Encrypt SSL 证书</h4>



<h4>步骤六：Let’s Encrypt SSL 证书的生成限制</h4>



<h2>具体的操作步骤：</h2>



<h4>步骤一：将要申请 Let&#8217;s Encrypt SSL 的域名解析到要进行操作的服务器 IP 地址上</h4>



<p>（步骤略）</p>



<h4>步骤二：安装 certbot</h4>



<pre class="wp-block-code"><code># yum -y install certbot</code></pre>



<p>（补充：这里以在 Fedora 35 上安装 certbot 为例）</p>



<h4>步骤三：使用 certbot 生成 Let&#8217;s Encrypt SSL 证书</h4>



<pre class="wp-block-code"><code># certbot certonly --email mingyu.zhu@eternalcenter.com -n --agree-tos --webroot -w /usr/share/nginx/html/ -d eternalcenter.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Requesting a certificate for eternalcenter.com
Performing the following challenges:
http-01 challenge for eternalcenter.com
Using the webroot path /usr/share/nginx/html for all unmatched domains.
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/eternalcenter.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/eternalcenter.com/privkey.pem
   Your certificate will expire on 2022-03-20. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le</code></pre>



<p>（<br>补充：这里以<br>1) 使用 mingyu.zhu@eternalcenter.com 邮箱<br>2) 以非交互式的方式<br>3) 通过给 /usr/share/nginx/html/ 网站目录里添加验证文件进行验证<br>4) 给 eternalcenter.com 域名<br>申请 Let&#8217;s Encrypt SSL 证书为例<br>）</p>



<h4>步骤四：查看已经生成的 Let&#8217;s Encrypt SSL 证书</h4>



<pre class="wp-block-code"><code># certbot certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Found the following certs:
  Certificate Name: eternalcenter.com
    Serial Number: 3e8cdb74a1abfbf3d535ec1c3f8cb3e4e4c
    Key Type: RSA
    Domains: eternalcenter.com
    Expiry Date: 2022-03-20 13:48:48+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/eternalcenter.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/eternalcenter.com/privkey.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
</code></pre>



<p>（<br>补充：<br>1) /etc/letsencrypt/live/eternalcenter.com/fullchain.pem 是公钥<br>2) /etc/letsencrypt/live/eternalcenter.com/privkey.pem 是私钥<br>）</p>



<h4>步骤五：延期 Let&#8217;s Encrypt SSL 证书<br>5.1 查看 Let&#8217;s Encrypt SSL 证书的延期策略</h4>



<pre class="wp-block-code"><code># cat /etc/letsencrypt/renewal/eternalcenter.com.conf 
# renew_before_expiry = 30 days
version = 1.20.0
archive_dir = /etc/letsencrypt/archive/eternalcenter.com
cert = /etc/letsencrypt/live/eternalcenter.com/cert.pem
privkey = /etc/letsencrypt/live/eternalcenter.com/privkey.pem
chain = /etc/letsencrypt/live/eternalcenter.com/chain.pem
fullchain = /etc/letsencrypt/live/eternalcenter.com/fullchain.pem</code></pre>



<p>（补充：可以看出 Let&#8217;s Encrypt SSL 证书是在过期前 30 天才能更新）</p>



<h4>5.2 手动延期 Let&#8217;s Encrypt SSL 证书</h4>



<pre class="wp-block-code"><code># /usr/bin/certbot renew</code></pre>



<p>（补充：这里以延期 Let&#8217;s Encrypt SSL 证书为例）</p>



<h4>5.3 自动延期 Let&#8217;s Encrypt SSL 证书</h4>



<pre class="wp-block-code"><code># crontab -e</code></pre>



<p>添加以下内容：</p>



<pre class="wp-block-code"><code>......
0 0 */30 * * /usr/bin/certbot renew</code></pre>



<p>（补充：这里以每过 30 天的 0 时 0 分延期 Let&#8217;s Encrypt SSL 证书为例）</p>



<h4>步骤六：Let’s Encrypt SSL 证书的生成限制</h4>



<p>1) 一个域名申请次数不能超过 5 次/周<br>2) 允许申请失败次数不能超过 5 次/时<br>3) 属于同一个顶级域名的二级域名申请次数不能超过 20 次/周<br>4) 申请请求频率不能超过 20 次/秒<br>5) 一个 IP 地址创建用户个数不能超过 10 个/3 小时<br>6) 一个用户最多 pending 审核的数不能超过 300 个</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[工具] Shell 博客 WordPress 数据去隐私化</title>
		<link>https://eternalcenter-2021-12.github.io/shell-blog-wordpress-de-privacy/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sat, 18 Dec 2021 16:12:50 +0000</pubDate>
				<category><![CDATA[Automation Maintenance (自动化运维)]]></category>
		<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Languages (语言)]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Nginx Management (管理)]]></category>
		<category><![CDATA[Personal Website Building (个人网站建设)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<category><![CDATA[Services (服务)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Backup (备份)]]></category>
		<category><![CDATA[Website Services (网站服务)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=19868</guid>

					<description><![CDATA[介绍： 作者：朱明宇名称：Shell 博客 WordPress 数据去隐私化作用：修改 WordPress 备份中某个用户的密码并再次进行备份 使用方法：1. 在此脚本的分割线内写入相应的内容2. 给此脚本添加执行权限3. 执行此脚本 脚本分割线里的变量：1. path=/home/zhumingyu/EternalCenter #本地备份目录2. filename=eternalcenter-backup #本地备份文件3. cpath=&#8221;/srv/www/htdocs&#8221; #网站程序目录4. sqlfile=eternalcenter/eternalcenter.sql #网站数据库数据备份5. tarfile=eternalcenter/eternalcenter.tar.gz #网站网页数据备份6. newfilename=clone-eternalcenter-backup #新备份的文件名7. user=&#8217;Mingyu Zhu&#8217; #要修改密码的用户8. newpw=eternalcenter #新的用户密码9. dbuser=ec #用于连接数据库的用户10. dbuserpw=eternalcenter #用于连接数据库的密码11. db=ec #网站数据库数据在数据库中的库 注意：1. 本地需要已经搭建好 LNMP 平台2. 执行此脚本的用户需要有远程服务器的 sudo tar 和 sudo rm 权限3. 脚本 ”mysql -uroot -p&#8217;eternalcenter&#8217; -e &#8220;drop database $db;&#8221;“ 中 &#8230; <p class="link-more"><a href="https://eternalcenter-2021-12.github.io/shell-blog-wordpress-de-privacy/" class="more-link">Continue reading<span class="screen-reader-text"> "[工具] Shell 博客 WordPress 数据去隐私化"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h2>介绍：</h2>



<p>作者：朱明宇<br>名称：Shell 博客 WordPress 数据去隐私化<br>作用：修改 WordPress 备份中某个用户的密码并再次进行备份</p>



<p>使用方法：<br>1. 在此脚本的分割线内写入相应的内容<br>2. 给此脚本添加执行权限<br>3. 执行此脚本</p>



<p>脚本分割线里的变量：<br>1. path=/home/zhumingyu/EternalCenter #本地备份目录<br>2. filename=eternalcenter-backup #本地备份文件<br>3. cpath=&#8221;/srv/www/htdocs&#8221; #网站程序目录<br>4. sqlfile=eternalcenter/eternalcenter.sql #网站数据库数据备份<br>5. tarfile=eternalcenter/eternalcenter.tar.gz #网站网页数据备份<br>6. newfilename=clone-eternalcenter-backup #新备份的文件名<br>7. user=&#8217;Mingyu Zhu&#8217; #要修改密码的用户<br>8. newpw=eternalcenter #新的用户密码<br>9. dbuser=ec #用于连接数据库的用户<br>10. dbuserpw=eternalcenter #用于连接数据库的密码<br>11. db=ec #网站数据库数据在数据库中的库</p>



<p>注意：<br>1. 本地需要已经搭建好 LNMP 平台<br>2. 执行此脚本的用户需要有远程服务器的 sudo tar 和 sudo rm 权限<br>3. 脚本 ”mysql -uroot -p&#8217;eternalcenter&#8217; -e &#8220;drop database $db;&#8221;“ 中 “eternalcenter“ 是指远程 MariaDB 数据库 root 用户的密码，需要修改成远程 MariaDB 数据库的 root 用户密码</p>



<h2>脚本：</h2>



<pre class="wp-block-code"><code>#!/bin/bash

####################### Separator ########################

path=/home/zhumingyu/EternalCenter
filename=eternalcenter-backup
cpath="/srv/www/htdocs"
sqlfile=eternalcenter/eternalcenter.sql
tarfile=eternalcenter/eternalcenter.tar.gz
newfilename=clone-eternalcenter-backup
user='Mingyu Zhu'
newpw=eternalcenter
dbuser=ec
dbuserpw=eternalcenter
db=ec

####################### Separator ########################

date=$(date +%Y-%m-%d-%H)
dir=`pwd`

sudo systemctl stop nginx
sudo systemctl stop php-fpm

mkdir -p $path/$newfilename-$date &amp;&gt; /dev/null

mysql -uroot -p'eternalcenter' -e "drop database $db;"
mysql -uroot -p'eternalcenter' -e "create database $db;"
mysql -uroot -e "create user \"$dbuser\"@\"localhost\" identified by \"$dbuserpw\";"
mysql -uroot -p'eternalcenter' -e "grant all privileges on $db.* to \"$dbuser\"@'localhost';"
mysql -uroot -p'eternalcenter' ec &lt; $sqlfile
mysql -uroot -p'eternalcenter' -e "update $db.ec_users set user_pass = md5(\'$newpw\') where user_login = \'$user\';"
sudo rm -rf $cpath/*
sudo tar -zxvf $tarfile -C $cpath &amp;&gt; /dev/null
cd $cpath
sudo sed -i "s/define('DB_PASSWORD', .*);/define('DB_PASSWORD', \'$dbuserpw\');/" wp-config.php

mysqldump -uroot -p'eternalcenter' $db &gt; $path/$newfilename-$date/$newfilename-$date.sql
sudo tar -zcvf $path/$newfilename-$date/$newfilename-$date.tar.gz .&#91;!.]* * &amp;&gt; /dev/null
cd $dir

sudo systemctl start nginx
sudo systemctl start php-fpm

cd $dir</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.scripts.space_sub.py（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-scripts-space_sub-py-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:38:16 +0000</pubDate>
				<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17412</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>import subprocess

def script_space(space_server_name):
    space_all_out = subprocess.check_output('ansible -m shell -a \'df\' %s | egrep -v \'Filesystem|tmpfs|CHANGED\' | grep \/ '%space_server_name, shell=True)
    return space_all_out</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.scripts.os_sub.py（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-scripts-os_sub-py-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:37:11 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17410</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>import subprocess

def script_os_distributor(os_distributor_server):
    distributor_out = subprocess.check_output('ansible -m shell -a \'lsb_release -a\' %s | grep \'Distributor ID:\' | awk -F\':\' \'{print $2}\''%os_distributor_server, shell=True)
    return distributor_out

def script_os_release(os_release_server):
    release_out = subprocess.check_output('ansible -m shell -a \'lsb_release -a\' %s | grep \'Release:\' | awk -F\':\' \'{print $2}\''%os_release_server, shell=True)
    return release_out

def script_os_kernel(os_kernel_server):
    kernel_out = subprocess.check_output('ansible -m shell -a \'uname -r\' %s | grep \-'%os_kernel_server, shell=True)
    return kernel_out

def script_os_uptime(os_uptime_server):
    uptime_out = subprocess.check_output('ansible -m shell -a \'uptime\' %s | grep \, | awk \'{print $3,$4}\' | awk -F\',\' \'{print $1}\''%os_uptime_server, shell=True)
    return uptime_out</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.scripts.nc_sub.py（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-scripts-nc_sub-py-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:35:57 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17408</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>import subprocess

def script_nc_name(space_nc_name):
    nc_name_out = subprocess.check_output('ansible -m shell -a \'ifconfig\' %s | ifconfig | egrep flags= | awk \'{print $1}\' | awk -F\':\' \'{print $1}\''%space_nc_name, shell=True)
    return nc_name_out

def script_nc_ip(space_nc_name):
    nc_ip_out = subprocess.check_output('ansible -m shell -a \'ifconfig\' %s | egrep \"&#91;0-9]{1,3}\.&#91;0-9]{1,3}\.&#91;0-9]{1,3}\.&#91;0-9]{1,3}\" | awk \'{print $2}\''%space_nc_name, shell=True)
    return nc_ip_out</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.scripts.mem_sub.py（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-scripts-mem_sub-py-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:34:36 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17406</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>import subprocess

def script_mem_size(sname):
    mem_size_out = subprocess.check_output('ansible -m shell -a \'free\' %s | grep -i mem | awk \'{print $2}\''%sname, shell=True)
    return(mem_size_out)

def script_mem_usage(sname):
    mem_usage_out = subprocess.check_output('ansible -m shell -a \'free\' %s | grep -i mem | awk \'{print $3}\''%sname, shell=True)
    return(mem_usage_out)

def script_mem_idleness(sname):
    mem_idleness_out = subprocess.check_output('ansible -m shell -a \'free\' %s | grep -i mem | awk \'{print $4}\''%sname, shell=True)
    return(mem_idleness_out)</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.scripts.cpu_sub.py（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-scripts-cpu_sub-py-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:32:50 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17404</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>import subprocess

def script_cpu_core(cpu_server_name):
    cpu_core_out = subprocess.check_output('ansible -m shell -a \'cat /proc/cpuinfo | egrep "core id|physical id" | tr -d "\n" | sed s/physical/\\nphysical/g | grep -v ^$ | sort | uniq | wc -l\' %s | tail -1'%cpu_server_name, shell=True)
    return(cpu_core_out)

def script_cpu_qty(qty_server_name):
    cpu_qty_out = subprocess.check_output('ansible -m shell -a \'cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l\' %s | tail -1'%qty_server_name, shell=True)
    return(cpu_qty_out)

def script_cpu_usage(cpu_usage_server_name):
    cpu_usage_out = subprocess.check_output('ansible -m shell -a \'top -bn 1\' %s | grep \'Cpu\' | awk -F\',\' \'{print $1 }\' | awk \'{print $2}\''%cpu_usage_server_name, shell=True)
    return(cpu_usage_out)

def script_cpu_idleness(cpu_idleness_server_name):
    cpu_idleness_out = subprocess.check_output('ansible -m shell -a \'top -bn 1\' %s | grep \'Cpu\' | awk -F\',\' \'{print $4 }\' | awk \'{print $1}\''%cpu_idleness_server_name, shell=True)
    return(cpu_idleness_out)</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.templates.success.html（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-templates-success-html-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:29:26 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17399</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;success&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

    &lt;p&gt;success&lt;/p&gt;

    &lt;table&gt;
        &lt;tr&gt;
            &lt;td&gt;
                &lt;form action="/server/server_list"&gt; 
                &lt;input type="submit" value="return"/&gt; 
                &lt;/form&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.templates.server_register.html（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-templates-server_register-html-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:28:15 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17396</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;server_register&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

    &lt;table&gt;
        &lt;form action="/server/server_register/" method="POST"&gt;
        {% csrf_token %}
            &lt;tr&gt;
                &lt;label&gt;server_name：&lt;/label&gt;&lt;input type="text" name="tserver_name"/&gt;
            &lt;/tr&gt;
            &lt;/br&gt;
            &lt;tr&gt;
                &lt;label&gt;server_main_ip：&lt;/label&gt;&lt;input type="text" name="tserver_main_ip"/&gt;
            &lt;/tr&gt;
            &lt;/br&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    &lt;input type="submit" value="regsiter"/&gt;
                &lt;/td&gt;
        &lt;/form&gt;
                &lt;td&gt;
                    &lt;form action="/server/server_list"&gt;
                    &lt;input type="submit" value="return"/&gt;
                &lt;/form&gt;
                &lt;/td&gt;
            &lt;/tr&gt;
        &lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.templates.server_list.html（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-templates-server_list-html-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:27:12 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17393</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;server&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

    &lt;table&gt;
        &lt;tr&gt;
            &lt;td&gt;
            &lt;form action="/server/server_register"&gt; 
            &lt;input type="submit" value="server_register"/&gt; 
            &lt;/form&gt;
            &lt;/td&gt;

            &lt;td&gt;
            &lt;form action="/server/admin_register"&gt; 
            &lt;input type="submit" value="admin_register"/&gt; 
            &lt;/form&gt;
            &lt;/td&gt;

            &lt;td&gt;
            &lt;form action="/server/server_bind_admin"&gt; 
            &lt;input type="submit" value="server_bind_admin"/&gt; 
            &lt;/form&gt;
            &lt;/td&gt;

            &lt;form action="/server/server_list/" method="POST"&gt;
            {% csrf_token %}
            &lt;td&gt;
            &lt;input type="submit" value="refresh"/&gt; 
            &lt;/td&gt;

        &lt;tr&gt;
    &lt;table&gt;

&lt;table border="1" cellspacing="0" width="550px"&gt;
    &lt;tr&gt;
        &lt;th&gt;Choice&lt;/th&gt;
        &lt;th&gt;Code&lt;/th&gt;
        &lt;th&gt;Server Name&lt;/th&gt;
        &lt;th&gt;Server Main_IP&lt;/th&gt;
        &lt;th&gt;Server Status&lt;/th&gt;
        &lt;th&gt;Server Detail&lt;/th&gt;
    &lt;/tr&gt;

    {% for servers in tserver_all %}
        &lt;tr&gt;
            &lt;td&gt;&lt;input type="checkbox" name="tserver_name_choice" value="{{ servers.server_name }}"/&gt;&lt;/td&gt;
            &lt;td&gt;{{ forloop.counter }}&lt;/td&gt;
            &lt;td&gt;{{ servers.server_name }}&lt;/td&gt;
            &lt;td&gt;{{ servers.server_main_ip }}&lt;/td&gt;
            &lt;td&gt;{{ servers.server_status }}&lt;/td&gt;
            &lt;td&gt;
                &lt;a href="/server/server_detail/?server_name={{ servers.server_name }}"&gt;detail&lt;/a&gt;
            &lt;/td&gt;
        &lt;tr&gt;
    {% endfor %}

            &lt;/form&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.templates.server_detail.html（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-templates-server_detail-html-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:25:29 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17390</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;detail&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;


        &lt;table&gt;
            &lt;tr&gt;

                &lt;td&gt;
                {% for servers in tserver %}
                &lt;form action="/server/server_detail/?server_name={{ servers.server_name }}" method="POST"&gt;
                {% csrf_token %}
                    &lt;select name="trefresh"&gt;
                        &lt;option value="single thread"&gt;refresh option: now(single thread)&lt;/option&gt;
                        &lt;option value="multi thread"&gt;refresh option: delay(multi thread)&lt;/option&gt;
                        &lt;input type='submit' value="refresh"&gt;
                    &lt;/select&gt;
                &lt;/form&gt;
                {% endfor %}

                &lt;td&gt;
                &lt;form action="/server/server_list"&gt; 
                &lt;input type="submit" value="return"/&gt; 
                &lt;/form&gt;
                &lt;/td&gt;

                &lt;td&gt;

            &lt;/tr&gt;
        &lt;/table&gt;

    &lt;table border="1" cellspacing="0" width="550px"&gt;
        &lt;tr&gt;
            &lt;th&gt;Code&lt;/th&gt;
            &lt;th&gt;Server Name&lt;/th&gt;
            &lt;th&gt;Server Main_IP&lt;/th&gt;
            &lt;th&gt;Server Status&lt;/th&gt;
        &lt;/tr&gt;
        {% for servers in tserver %}
            &lt;tr&gt;
                &lt;td&gt;{{ forloop.counter }}&lt;/td&gt;
                &lt;td&gt;{{ servers.server_name }}&lt;/td&gt;
                &lt;td&gt;{{ servers.server_main_ip }}&lt;/td&gt;
                &lt;td&gt;{{ servers.server_status }}&lt;/td&gt;
            &lt;tr&gt;
        {% endfor %}
    &lt;/table&gt;

&lt;br/&gt;

    &lt;table border="1" cellspacing="0" width="550px"&gt;
        &lt;tr&gt;
            &lt;th&gt;OS Distributor&lt;/th&gt;
            &lt;th&gt;OS Release&lt;/th&gt;
            &lt;th&gt;OS Kernel&lt;/th&gt;
            &lt;th&gt;OS Uptime&lt;/th&gt;
            &lt;th&gt;OS Status&lt;/th&gt;
        &lt;/tr&gt;
        {% for oss in tos %}
            &lt;tr&gt;
                &lt;td&gt;{{ oss.os_distributor }}&lt;/td&gt;
                &lt;td&gt;{{ oss.os_release }}&lt;/td&gt;
                &lt;td&gt;{{ oss.os_kernel }}&lt;/td&gt;
                &lt;td&gt;{{ oss.os_uptime }}&lt;/td&gt;
                &lt;td&gt;{{ oss.os_status }}&lt;/td&gt;           
            &lt;/tr&gt;
        {% endfor %}
    &lt;/table&gt;

&lt;br/&gt;

    &lt;table border="1" cellspacing="0" width="550px"&gt;
        &lt;tr&gt;
            &lt;th&gt;CPU QTY&lt;/th&gt;
            &lt;th&gt;CPU Core&lt;/th&gt;
            &lt;th&gt;CPU Usage&lt;/th&gt;
            &lt;th&gt;CPU Idleness&lt;/th&gt;
            &lt;th&gt;CPU Status&lt;/th&gt;
        &lt;/tr&gt;
        {% for cpus in tcpu %}
            &lt;tr&gt;
                &lt;td&gt;{{ cpus.cpu_qty }}&lt;/td&gt;
                &lt;td&gt;{{ cpus.cpu_core }}&lt;/td&gt;
                &lt;td&gt;{{ cpus.cpu_usage }}%&lt;/td&gt;
                &lt;td&gt;{{ cpus.cpu_idleness }}%&lt;/td&gt;
                &lt;td&gt;{{ cpus.cpu_status }}&lt;/td&gt;
            &lt;/tr&gt;
        {% endfor %}
    &lt;/table&gt;

&lt;br/&gt;

    &lt;table border="1" cellspacing="0" width="550px"&gt;
        &lt;tr&gt;
            &lt;th&gt;Mem Size&lt;/th&gt;
            &lt;th&gt;Mem Usage&lt;/th&gt;
            &lt;th&gt;Mem Idleness&lt;/th&gt;
            &lt;th&gt;Mem Status&lt;/th&gt;
        &lt;/tr&gt;
        {% for mems in tmem %}
            &lt;tr&gt;
                &lt;td&gt;{{ mems.mem_size }}K&lt;/td&gt;
                &lt;td&gt;{{ mems.mem_usage }}K&lt;/td&gt;
                &lt;td&gt;{{ mems.mem_idleness }}K&lt;/td&gt;
                &lt;td&gt;{{ mems.mem_status }}&lt;/td&gt;
            &lt;/tr&gt;
        {% endfor %}
    &lt;/table&gt;

&lt;br/&gt;

    &lt;table border="1" cellspacing="0" width="550px"&gt;
        &lt;tr&gt;
            &lt;th&gt;Space Name&lt;/th&gt;
            &lt;th&gt;Space Size&lt;/th&gt;
            &lt;th&gt;Space Usage&lt;/th&gt;
            &lt;th&gt;Space Idleness&lt;/th&gt;
            &lt;th&gt;Space Mount&lt;/th&gt;
            &lt;th&gt;Space Status&lt;/th&gt;
        &lt;/tr&gt;
        {% for spaces in tspace %}
            &lt;tr&gt;
                &lt;td&gt;{{ spaces.space_name }}&lt;/td&gt;
                &lt;td&gt;{{ spaces.space_size }}K&lt;/td&gt;
                &lt;td&gt;{{ spaces.space_usage }}K&lt;/td&gt;
                &lt;td&gt;{{ spaces.space_idleness }}K&lt;/td&gt;
                &lt;td&gt;{{ spaces.space_mount }}&lt;/td&gt;
                &lt;td&gt;{{ spaces.space_status }}&lt;/td&gt;
            &lt;/tr&gt;
        {% endfor %}
    &lt;/table&gt;

&lt;br/&gt;

    &lt;table border="1" cellspacing="0" width="550px"&gt;
        &lt;tr&gt;
            &lt;th&gt;NC Name&lt;/th&gt;
            &lt;th&gt;NC IP&lt;/th&gt;
            &lt;th&gt;NC Status&lt;/th&gt;
        &lt;/tr&gt;
        {% for ncs in tnc %}
            &lt;tr&gt;
                &lt;td&gt;{{ ncs.nc_name }}&lt;/td&gt;
                &lt;td&gt;{{ ncs.nc_ip }}&lt;/td&gt;
                &lt;td&gt;{{ ncs.nc_status }}&lt;/td&gt;
            &lt;/tr&gt;
        {% endfor %}
    &lt;/table&gt;

&lt;br/&gt;

    &lt;table border="1" cellspacing="0" width="550px"&gt;
        &lt;tr&gt;
            &lt;th&gt;Admin Name&lt;/th&gt;
            &lt;th&gt;Admin GID&lt;/th&gt;
            &lt;th&gt;Admin Email&lt;/th&gt;
            &lt;th&gt;Admin Phone&lt;/th&gt;
            &lt;th&gt;Admin Status&lt;/th&gt;
        &lt;/tr&gt;
        {% for admins in tsdadmin %}
            &lt;tr&gt;
                &lt;td&gt;{{ admins.admin_name }}&lt;/td&gt;
                &lt;td&gt;{{ admins.admin_gid }}&lt;/td&gt;
                &lt;td&gt;{{ admins.admin_email }}&lt;/td&gt;
                &lt;td&gt;{{ admins.admin_phone }}&lt;/td&gt;
                &lt;td&gt;{{ admins.admin_status }}&lt;/td&gt;
            &lt;tr&gt;
        {% endfor %}

&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.templates.server_bind_admin.html（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-templates-server_bind_admin-html-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:23:47 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17387</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;server_bind_admin&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

    &lt;table&gt;
        &lt;form action="/server/server_bind_admin/" method="POST"&gt;
        {% csrf_token %}
            &lt;tr&gt;
                &lt;label&gt;server_name：&lt;/label&gt;&lt;input type="text" name="server_bind_name"/&gt;
            &lt;/tr&gt;
            &lt;/br&gt;
            &lt;tr&gt;
                &lt;label&gt;admin_name：&lt;/label&gt;&lt;input type="text" name="admin_bind_name"/&gt;
            &lt;/tr&gt;
            &lt;/br&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    &lt;input type="submit" value="bind"/&gt;
                &lt;/td&gt;
        &lt;/form&gt;
                &lt;td&gt;
                &lt;form action="/server/server_list"&gt; 
                    &lt;input type="submit" value="return"/&gt; 
                &lt;/form&gt;
                &lt;/td&gt;
            &lt;/tr&gt;
    &lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.templates.fail.html（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-templates-fail-html-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:22:11 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17384</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;fail&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

    &lt;p&gt;fail&lt;/p&gt;

    &lt;table&gt;
        &lt;tr&gt;
            &lt;td&gt;
            &lt;form action="/server/server_list"&gt;
            &lt;input type="submit" value="return"/&gt; 
            &lt;/form&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.templates.admin_register.html（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-templates-admin_register-html-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:19:48 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17381</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;admin_register&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;

   &lt;table&gt;
        &lt;form action="/server/admin_register/" method="POST"&gt;
        {% csrf_token %}
            &lt;tr&gt;
                &lt;label&gt;admin_name：&lt;/label&gt;&lt;input type="text" name="tadmin_name"/&gt;
            &lt;/tr&gt;
            &lt;/br&gt;
            &lt;tr&gt;
                &lt;label&gt;admin_gid：&lt;/label&gt;&lt;input type="text" name="tadmin_gid"/&gt;
            &lt;/tr&gt;
            &lt;/br&gt;
            &lt;tr&gt;
                &lt;label&gt;admin_email：&lt;/label&gt;&lt;input type="text" name="tadmin_email"/&gt;
            &lt;/tr&gt;
            &lt;br/&gt;
            &lt;tr&gt;
                &lt;label&gt;admin_phone：&lt;/label&gt;&lt;input type="text" name="tadmin_phone"/&gt;
            &lt;/tr&gt;
            &lt;/br&gt;
            &lt;tr&gt;
                &lt;label&gt;admin_level：&lt;/label&gt;&lt;input type="text" name="tadmin_level"/&gt;
            &lt;/tr&gt;
            &lt;/br&gt;
            &lt;tr&gt;
                &lt;td&gt;
                    &lt;input type="submit" value="regsiter"/&gt;
                &lt;/td&gt;
            &lt;/form&gt;
                &lt;td&gt;
                    &lt;form action="/server/server_list"&gt;
                    &lt;input type="submit" value="return"/&gt; 
                    &lt;/form&gt;
                &lt;/td&gt;
            &lt;/tr&gt;
        
&lt;/body&gt;
&lt;/html&gt;</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.views.py（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-views-py-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:17:22 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17379</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>from time import sleep
from django.shortcuts import render
from .models import *
from django.http import HttpResponse

# Create your views here.


def vserver_register(request):
    if request.method == 'GET':
        return render(request,'server_register.html')
    else:
        vserver_name = request.POST.get('tserver_name','')
        vserver_main_ip = request.POST.get('tserver_main_ip','')

    vnewserver = server_register(vserver_name,vserver_main_ip)
    if vnewserver:
        return render(request,'success.html')
    return render(request,'fail.html')


def vadmin_register(request):
    if request.method == 'GET':
        return render(request,'admin_register.html')
    else:
        vadmin_name = request.POST.get('tadmin_name','')
        vadmin_gid = request.POST.get('tadmin_gid','')
        vadmin_email = request.POST.get('tadmin_email','')
        vadmin_phone = request.POST.get('tadmin_phone','')
        vadmin_level = request.POST.get('tadmin_level','')

    vnewadmin = admin_register(vadmin_name,vadmin_gid,vadmin_email,vadmin_phone,vadmin_level)
    if vnewadmin:
        return render(request,'success.html')
    return render(request,'fail.html')


def vserver_bind_admin(request):
    if request.method == 'GET':
        return render(request,'server_bind_admin.html')
    else:
        vserver_bind = request.POST.get('server_bind_name','')
        vadmin_bind = request.POST.get('admin_bind_name','')
        dbind(vserver_bind,vadmin_bind)
        vnewbind = server.objects.filter(server_name = vserver_bind).filter(admin__admin_name = vadmin_bind)
        if vnewbind:
            return render(request,'success.html')
        return render(request,'fail.html')


def vserver_list(request):

    vserver_name_choice = request.POST.getlist('tserver_name_choice','')

    if vserver_name_choice != '':

        for vserver_name_choices in vserver_name_choice:
            os_check_thread = threading.Thread(target=os_check_all, args=&#91;vserver_name_choices])
            cpu_check_thread = threading.Thread(target=cpu_check_all, args=&#91;vserver_name_choices])
            mem_check_thread = threading.Thread(target=mem_check_all, args=&#91;vserver_name_choices])
            space_check_thread = threading.Thread(target=space_check_all, args=&#91;vserver_name_choices])
            nc_check_thread = threading.Thread(target=nc_check_all, args=&#91;vserver_name_choices])

            os_check_thread.start()
            cpu_check_thread.start()
            mem_check_thread.start()
            space_check_thread.start()
            nc_check_thread.start()

            os_check_thread.join()
            cpu_check_thread.join()
            mem_check_thread.join()
            space_check_thread.join()
            nc_check_thread.join()

        for vserver_name_choices in vserver_name_choice:
            server_change_status(vserver_name_choices)


    vserver_all = server.objects.all()
    return render(request,'server_list.html',{'tserver_all':vserver_all})


import threading
def vserver_detail(request):
    vsdmserver = request.GET.get('server_name','')
    vrefresh = request.POST.get('trefresh','')


    if vrefresh == 'single thread':
        os_check_all(vsdmserver)
        cpu_check_all(vsdmserver)
        mem_check_all(vsdmserver)
        space_check_all(vsdmserver)
        nc_check_all(vsdmserver)
        server_change_status(vsdmserver)


    if vrefresh == 'multi thread':
        os_check_thread = threading.Thread(target=os_check_all, args=&#91;vsdmserver])
        cpu_check_thread = threading.Thread(target=cpu_check_all, args=&#91;vsdmserver])
        mem_check_thread = threading.Thread(target=mem_check_all, args=&#91;vsdmserver])
        space_check_thread = threading.Thread(target=space_check_all, args=&#91;vsdmserver])
        nc_check_thread = threading.Thread(target=nc_check_all, args=&#91;vsdmserver])

        os_check_thread.start()
        cpu_check_thread.start()
        mem_check_thread.start()
        space_check_thread.start()
        nc_check_thread.start()

        os_check_thread.join()
        cpu_check_thread.join()
        mem_check_thread.join()
        space_check_thread.join()
        nc_check_thread.join()

        server_change_status(vsdmserver)

    vsdserver = server.objects.filter(server_name = vsdmserver)
    vsdos = server.objects.get(server_name = vsdmserver).os_set.all()
    vsdcpu = server.objects.get(server_name = vsdmserver).cpu_set.all()
    vsdmem = server.objects.get(server_name = vsdmserver).mem_set.all()
    vsdspace = server.objects.get(server_name = vsdmserver).space_set.all()
    vsdnc = server.objects.get(server_name = vsdmserver).nc_set.all()
    vsdadmin = server.objects.get(server_name = vsdmserver).admin_set.all()

    return render(request,'server_detail.html',{'tserver':vsdserver,'tos':vsdos,'tcpu':vsdcpu,'tmem':vsdmem,'tspace':vsdspace,'tnc':vsdnc,'tsdadmin':vsdadmin})</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.urls.py（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-urls-py-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:15:37 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17377</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>from django.conf.urls import url
from server.views import vserver_list, vserver_detail, vserver_register, vadmin_register, vserver_bind_admin

urlpatterns = &#91;
     url(r'^server_register',vserver_register),
     url(r'^admin_register',vadmin_register),
     url(r'^server_bind_admin',vserver_bind_admin),
     url(r'^server_list',vserver_list),
     url(r'^server_detail',vserver_detail)
]</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] server.models.py（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/server-models-py-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:13:50 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17375</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>from django.db import models

# Create your models here.

class server(models.Model):
    server_id = models.AutoField(primary_key=True)
    server_name = models.CharField(max_length=30,unique = True)
    server_main_ip = models.GenericIPAddressField(unique = True)
    server_status = models.CharField(max_length=30)

    def __str__(self):
        return u'server_id:%s,server_name:%s,server_main_ip:%s,server_status:%s'%(self.server_id, self.server_name, self.server_main_ip, self.server_status)


class admin(models.Model):
    admin_id = models.AutoField(primary_key=True)
    admin_name = models.CharField(max_length=30,unique = True)
    admin_gid = models.CharField(max_length=30,unique = True)
    admin_email = models.EmailField(unique = True)
    admin_phone = models.CharField(max_length=30,unique = True)
    admin_level = models.IntegerField()
    admin_status = models.CharField(max_length=30)
    admin_mid = models.ManyToManyField(server)

    def __str__(self):
        return u'admin_name:%s,admin_gid:%s,admin_email:%s,admin_phone:%s,admin_level:%s,admin_status:%s'%(self.admin_name, self.admin_gid, self.admin_email, self.admin_phone, self.admin_level, self.admin_status, self.admin_mid)


class os(models.Model):
    os_id = models.AutoField(primary_key=True)
    os_distributor = models.CharField(max_length=30)
    os_release = models.CharField(max_length=30)
    os_kernel = models.CharField(max_length=30)
    os_uptime = models.CharField(max_length=30)
    os_status = models.CharField(max_length=30)
    os_fid = models.ForeignKey(server,on_delete=models.CASCADE)

    def __str__(self):
        return u'os_distributor:%s,os_release:%s,os_kernel:%s,os_uptime:%s,os_status:%s'%(self.os_distributor, self.os_release, self.os_kernel, self.os_uptime, self.os_status)


class cpu(models.Model):
    cpu_id = models.AutoField(primary_key=True)
    cpu_qty = models.IntegerField()
    cpu_core = models.IntegerField()
    cpu_usage = models.CharField(max_length=255)
    cpu_idleness = models.CharField(max_length=255)
    cpu_status = models.CharField(max_length=30)
    cpu_fid = models.ForeignKey(server,on_delete=models.CASCADE)

    def __str__(self):
        return u'cpu_qty:%s,cpu_core:%s,cpu_usage:%s,cpu_idleness:%s,cpu_status:%s'%(self.cpu_qty, self.cpu_core, self.cpu_usage, self.cpu_idleness, self.cpu_status)


class mem(models.Model):
    mem_id = models.AutoField(primary_key=True)
    mem_size = models.CharField(max_length=30)
    mem_usage = models.CharField(max_length=255)
    mem_idleness = models.CharField(max_length=255)
    mem_status = models.CharField(max_length=30)
    mem_fid = models.ForeignKey(server,on_delete=models.CASCADE)

    def __str__(self):
        return u'mem_size:%s,mem_usage:%s,mem_idleness:%s,mem_status:%s'%(self.mem_size, self.mem_usage, self.mem_idleness, self.mem_status)


class space(models.Model):
    space_id = models.AutoField(primary_key=True)
    space_name = models.CharField(max_length=30)
    space_size = models.CharField(max_length=255)
    space_usage = models.CharField(max_length=255)
    space_idleness = models.CharField(max_length=255)
    space_mount = models.CharField(max_length=255)
    space_status = models.CharField(max_length=30)     
    space_fid = models.ForeignKey(server,on_delete=models.CASCADE)

    def __str__(self):
        return u'space_name:%s,space_size:%s,space_usage:,%s,space_idleness:%s,space_mount:%s,space_status:%s'%(self.space_name, self.space_size, self.space_usage, self.space_idleness,  self.space_mount, self.space_status)


class nc(models.Model):
    nc_id = models.AutoField(primary_key=True)
    nc_name = models.CharField(max_length=30)
    nc_ip = models.GenericIPAddressField()
    nc_status = models.CharField(max_length=30)
    nc_fid = models.ForeignKey(server,on_delete=models.CASCADE)

    def __str__(self):
        return u'nc_name:%s,nc_ip:%s,nc_status:%s'%(self.nc_name, self.nc_ip, self.nc_status)


def server_register(server_name,server_main_ip):
    try:
        register_server = server.objects.get(server_name = server_name)
        
    except server.DoesNotExist:
        register_server = server.objects.create(server_name = server_name,server_main_ip = server_main_ip,server_status = 'have not checked')
        return register_server


def server_change_status(status_check_server):
    status_check_server_id = server.objects.get(server_name = status_check_server).server_id

    check_os_status = os.objects.get(os_fid = status_check_server_id).os_status
    check_cpu_status = cpu.objects.get(cpu_fid = status_check_server_id).cpu_status
    check_mem_status = mem.objects.get(mem_fid = status_check_server_id).mem_status
    check_space_status = space.objects.get(space_fid = status_check_server_id).space_status

    check_space_status = 'normal'
    check_space_status_list = &#91;]
    check_space_status_list = space.objects.values('space_status').filter(space_fid = status_check_server_id)
    for check_space_statuss in check_space_status_list:
        if check_space_statuss == {'space_status': 'normal'}:
            check_space_status = 'normal'
        else:
            check_space_status = 'abnormal'

    check_nc_status = 'normal'
    check_nc_status_list = &#91;]
    check_nc_status_list = nc.objects.values('nc_status').filter(nc_fid = status_check_server_id)
    for check_nc_statuss in check_nc_status_list:

        if check_nc_statuss == {'nc_status': 'normal'}:
            check_nc_status = 'normal'
        else:
            check_nc_status = 'abnormal'

    mserver_status = 'abnormal'
    if check_os_status == 'normal':
        if check_cpu_status == 'normal':
            if check_mem_status == 'normal':
                if check_space_status == 'normal':
                    if check_nc_status == 'normal':
                        mserver_status = 'normal'

    server.objects.filter(server_name = status_check_server).update(server_status = mserver_status)


def admin_register(admin_name,admin_gid,admin_email,admin_phone,admin_level):
    try:
        register_admin = admin.objects.get(admin_name = admin_name)

    except admin.DoesNotExist:
        register_admin = admin.objects.create(admin_name = admin_name,admin_gid = admin_gid,admin_email = admin_email,admin_phone = admin_phone,admin_level = admin_level,admin_status = 'normal')
        return register_admin


def dbind(bind_server,bind_admin):
    bind_server_id = server.objects.get(server_name = bind_server).server_id
    bind = admin.objects.get(admin_name = bind_admin)
    bind.admin_mid.add(bind_server_id)


from server.scripts.os_sub import *
def os_check_all(os_check_server):
    os_distributor_out = script_os_distributor(os_check_server)
    os_distributor_out = os_distributor_out.decode().strip()

    os_release_out = script_os_release(os_check_server)
    os_release_out = os_release_out.decode().strip()

    os_kernel_out = script_os_kernel(os_check_server)
    os_kernel_out = os_kernel_out.decode().strip()

    os_uptime_out = script_os_uptime(os_check_server)
    os_uptime_out = os_uptime_out.decode().strip()

    os_status_out = 'abnormal'
    if os_distributor_out:
        if os_release_out:
            if os_kernel_out:
                if os_uptime_out:
                    os_status_out = 'normal'


    os_server = server.objects.get(server_name = os_check_server)

    try:
        chack_os_data = os.objects.get(os_fid = os_server)

    except os.DoesNotExist:
        os.objects.create(os_distributor = os_distributor_out,os_release = os_release_out,os_kernel = os_kernel_out,os_uptime = os_uptime_out,os_status = os_status_out,os_fid = os_server)

    os.objects.filter(os_fid = os_server).update(os_distributor = os_distributor_out,os_release = os_release_out,os_kernel = os_kernel_out,os_uptime = os_uptime_out,os_status = os_status_out,os_fid = os_server)


from server.scripts.cpu_sub import *
def cpu_check_all(cpu_check_server):
    cpu_qty_out = script_cpu_qty(cpu_check_server)
    cpu_qty_out = cpu_qty_out.decode().strip()

    cpu_core_out = script_cpu_core(cpu_check_server)
    cpu_core_out = cpu_core_out.decode().strip()

    cpu_usage_out = script_cpu_usage(cpu_check_server)
    cpu_usage_out = cpu_usage_out.decode().strip()

    cpu_idleness_out = script_cpu_idleness(cpu_check_server)
    cpu_idleness_out = cpu_idleness_out.decode().strip()


    cpu_status_out='abnormal'
    if cpu_core_out:
        if cpu_qty_out:
            if cpu_usage_out:
                if cpu_idleness_out:
                    cpu_status_out='normal'            

    cpu_server = server.objects.get(server_name = cpu_check_server)

    try: 
        check_cpu_data = cpu.objects.get(cpu_fid = cpu_server)

    except cpu.DoesNotExist:
        cpu.objects.create(cpu_qty = cpu_qty_out,cpu_core = cpu_core_out,cpu_usage = cpu_usage_out,cpu_idleness = cpu_idleness_out,cpu_status = cpu_status_out,cpu_fid = cpu_server)
    
    cpu.objects.filter(cpu_fid = cpu_server).update(cpu_qty = cpu_qty_out,cpu_core = cpu_core_out,cpu_usage = cpu_usage_out,cpu_idleness = cpu_idleness_out,cpu_status = cpu_status_out,cpu_fid = cpu_server)


from server.scripts.mem_sub import *
def mem_check_all(mem_check_server):
    mem_size_out = script_mem_size(mem_check_server)
    mem_size_out = mem_size_out.decode().strip()

    mem_usage_out = script_mem_usage(mem_check_server)
    mem_usage_out = mem_usage_out.decode().strip()

    mem_idleness_out = script_mem_idleness(mem_check_server)
    mem_idleness_out = mem_idleness_out.decode().strip()

    mem_status_out = 'abnormal'
    if mem_size_out:
        if mem_usage_out:
            if mem_idleness_out:
                    mem_status_out='normal'

    mem_server = server.objects.get(server_name = mem_check_server)

    try:
        check_mem_data = mem.objects.get(mem_fid = mem_server)

    except mem.DoesNotExist:
        mem.objects.create(mem_size = mem_size_out,mem_usage = mem_usage_out,mem_idleness = mem_idleness_out,mem_status = mem_status_out,mem_fid = mem_server)

    mem.objects.filter(mem_fid = mem_server).update(mem_size = mem_size_out,mem_usage = mem_usage_out,mem_idleness = mem_idleness_out,mem_status = mem_status_out,mem_fid = mem_server)


from server.scripts.space_sub import *
def space_check_all(space_check_server):
    space_all_out = script_space(space_check_server)
    space_all_out = space_all_out.decode().strip()
    space_all_out = space_all_out.split('\n')

    space_server = server.objects.get(server_name = space_check_server)

    for spaces in space_all_out:
        space_name_out = spaces.split()&#91;0]
        space_size_out = spaces.split()&#91;1]
        space_usage_out = spaces.split()&#91;2]
        space_idleness_out = spaces.split()&#91;3]
        space_mount_out = spaces.split()&#91;-1]

        space_status_out='abnormal'
        if space_name_out:
            if space_size_out:
                if space_usage_out:
                    if space_idleness_out:
                        space_status_out='normal'

        try:
            check_space_data = space.objects.get(space_fid = space_server,space_name = space_name_out)

        except space.DoesNotExist:
            space.objects.create(space_name = space_name_out,space_size = space_size_out,space_usage = space_usage_out,space_idleness = space_idleness_out,space_mount = space_mount_out,space_status = space_status_out,space_fid = space_server)

        space.objects.filter(space_fid = space_server,space_name = space_name_out).update(space_name = space_name_out,space_size = space_size_out,space_usage = space_usage_out,space_idleness = space_idleness_out,space_mount = space_mount_out,space_status = space_status_out,space_fid = space_server)


from server.scripts.nc_sub import *
def nc_check_all(nc_check_server):
    nc_name_out = script_nc_name(nc_check_server)
    nc_name_out = nc_name_out.decode().strip()
    nc_name_out = nc_name_out.split('\n')

    nc_ip_out = script_nc_ip(nc_check_server)
    nc_ip_out = nc_ip_out.decode().strip()
    nc_ip_out = nc_ip_out.split('\n')

    nc_server = server.objects.get(server_name = nc_check_server)
    
    nc_name_line = 1
    nc_ip_line = 1
    for nc_name_outs in nc_name_out:
        nc_name_out_out = nc_name_outs.split()&#91;0]

        for nc_ip_outs in nc_ip_out:
            nc_ip_out_out = nc_ip_outs.split()&#91;0]

            nc_status_out = 'abnormal'
            if nc_name_out_out:
                if nc_ip_out_out:
                    nc_status_out = 'normal'
            
            if nc_name_line == nc_ip_line:
                try:
                    check_nc_data = nc.objects.get(nc_fid = nc_server,nc_name = nc_name_out_out)
            
                except nc.DoesNotExist:
                    nc.objects.create(nc_name = nc_name_out_out,nc_ip = nc_ip_out_out,nc_status = nc_status_out,nc_fid = nc_server)

                nc.objects.filter(nc_fid = nc_server,nc_name = nc_name_out_out).update(nc_name = nc_name_out_out,nc_ip = nc_ip_out_out,nc_status = nc_status_out,nc_fid = nc_server)
        
            nc_ip_line = nc_ip_line + 1
        
        nc_ip_line = 1
        nc_name_line = nc_name_line + 1</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] mysite.urls.py（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/mysite-urls-py-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:05:30 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17373</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>"""mysite URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https:&#47;&#47;docs.djangoproject.com/en/3.2/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.conf.urls import url, include

urlpatterns = &#91;
    path('admin/', admin.site.urls),
    url(r'^server/', include('server.urls')),
]</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[项目] mysite.settings.py（LOAMAW v1.0）</title>
		<link>https://eternalcenter-2021-12.github.io/mysite-settings-py-loamaw-v1-0/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 15 Aug 2021 14:01:59 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) (运维辅助网站)]]></category>
		<category><![CDATA[Linux Operation and Maintenance Auxiliary Website (LOAMAW) v1.0 (运维辅助网站)]]></category>
		<category><![CDATA[Project (项目)]]></category>
		<guid isPermaLink="false">https://eternalcenter-2021-12.github.io/?p=17371</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>"""
Django settings for mysite project.

Generated by 'django-admin startproject' using Django 3.2.6.

For more information on this file, see
https:&#47;&#47;docs.djangoproject.com/en/3.2/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/3.2/ref/settings/
"""

from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-ln+%tp_-5(i0cg8&amp;62!tg)7ht)_n=t4ihz#7!&amp;don5_ob_-9+9'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = &#91;'*']


# Application definition

INSTALLED_APPS = &#91;
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'server'
]

MIDDLEWARE = &#91;
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'mysite.urls'

TEMPLATES = &#91;
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': &#91;],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': &#91;
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'mysite.wsgi.application'


# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'server',
        'HOST': '10.10.10.5',
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': 'password',
    }
}


# Password validation
# https://docs.djangoproject.com/en/3.2/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = &#91;
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]


# Internationalization
# https://docs.djangoproject.com/en/3.2/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/

STATIC_URL = '/static/'

# Default primary key field type
# https://docs.djangoproject.com/en/3.2/ref/settings/#default-auto-field

DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'</code></pre>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
