- linux脚本监控重启shell脚本,CentOS系统的监控进程状态并自动重启的shell脚本
小雨芝时节
在CentOS系统中利用Crontab监控进程是否被结束并自动重启。附加每天凌晨4点自动重启服务器。1、编辑Crontabcrontab-e2、按i进行编辑*/1****/root/monitor.sh#每分钟运行一遍monitor.sh脚本05***/sbin/reboot#每天凌晨5点自动重启服务器12*/1****/root/monitor.sh#每分钟运行一遍monitor.sh脚本05*
- 工具知识 | Linux 常用命令参考手册
TrustZone_Hcoco
工具技能知识点学习linux运维服务器
目录文件查看文件内容headtailcatnlmore创建touchmkdirmktemp删除rmrmdir查找文件findlocatelspwdwcchattrpastestatgrepsedcdcpmvopensourcetreelnfilesortuniqsplitvim系统管理nohupwatchpingwhichshutdownrebootuptimecrontabatunameifco
- Linux:如何使用 Crontab
AnyaPapa
Linuxlinux运维服务器
今天想了解一下LinuxCrontab。嗯,在Windows上,可以看做和定时任务差不多。“要在特定时间进行特定工作。”如果是这样,可以使用crontab,轻松使用Linux。1.基本(crontabbasic)先看一下基本的crontab使用方法吧。在Linuxshell中输入如下内容:$crontab-e那么可以编辑的地方就会加载,这里就是可以设置crontab的地方。在这里输入各种cron
- chmod命令学习3
天南地北飞
linux基础学习学习linux服务器
设置和清除sgidchmodg[±]s与suid密切相关的是sgid。sgid权限既适用于文件,也适用于目录。对于文件,sgid与suid的功能类似,只不过用户是以组的权限执行文件,而不是以拥有者的权限执行文件。例如,系统中的crontab命令就可能设置为sgid,以便用户就能够让cron为他们运行程序。不过,是以更加受限的crontab组,而不是以无所不能的root用户来运行程序。$ls-l/u
- 玄机alog挖矿应急
呆呆的羊
网络web安全
这里我主要介绍一下思路,因为我在做的时候发现可能是环境的问题,有时候同一个命令的执行结果是不一样的,有时候有结果,有时候啥都没有。1.首先要认识这里是靶场,所以此时的设备并没有与靶场建立连接,而是处于断开连接的状态,我们要做的就是上机排查相关日志、权限维持的相关手段等,还原攻击者的链路和人物画像。2.crontab-l查看计划任务,找到了可疑的执行文件3.计算文件的md5值,然后放到微步上分析一下
- Linux云计算学习笔记11 (计划任务)
墨影萧萧
Linuxlinux运维云计算centos服务器学习笔记
一.基本概念在Linux操作系统中,除了用户即时执行的命令操作以外,还可以配置在指定的时间、指定的日期执行预先计划好的系统管理任务(如定期备份、定期采集监测数据)。试想一下,如果系统要求在业务不那么繁忙的半夜进行调整,难道我们需要半夜爬起来去搞定吗?这个时候,能够提前制定计划,让系统自动解决问题的计划任务就派上用场了。RHEL6系统中默认已安装了at、crontab软件包,通过atd和crond这
- 进程和计划任务管理
最新小梦
linux运维服务器
目录查看进程程序进程控制进程pstree命令——查看进程树空格+&表示后台执行正在执行的进程任务转为后台暂停CTRL+Zjobs-l查看后台任务的先后排序bg后台进程顺序id,在后台继续运行fg后台进程顺序id,调回前台运行终止任务at一次性任务设置crontab周期性任务设置查看进程程序保存在硬盘、光盘等介质中的可执行代码和数据静态保存的代码进程在CPU及内存中运行的程序代码动态执行的代码父、子
- Python任务调度的几种方式
唯余木叶下弦声
pythonpython开发语言
目录1、通过time.sleep(n)2、通过LinuxCrontab3、通过APScheduler4、通过AirFlow框架1、通过time.sleep(n)例如,写个while(True)循环,每次执行完程序休眠1小时:time.sleep(3600),以间接达到定时调度的效果。这是最简单也是最笨的方式,会阻塞当前线程,而且无法控制任务准确的执行时间,不推荐用于生产环境中的任务调度。2、通过L
- crontab 加文件锁
程序员的自我修养
现在有个问题,如果设定了任务每分钟执行一次,但有可能一分钟内任务并没有执行完成,这时系统会再执行任务。导致两个相同的任务在执行。例如:循环300次,每循环一次睡眠1秒。执行完成需要300秒即5分钟。设置crontab为每分钟执行*****php/home/fdipzone/php/test.php>>/home/fdipzone/php/test.log2分钟后,使用psaux|greptest.
- 我的香橙派闹钟-v0.1 mini
define_mine
嵌入式硬件linuxpython
项目描述想要做一个闹钟,然后一步一步完善。毕竟想做很久了,所以总归算是填坑吧手头的香橙派装的Ubuntu18.04应该是记录下来主要怕这老爷车零部件每一步都是临时凑出来的之后哪个部件想不起来就G了目前的定时方案使用的是crontab做的定时方案使用的命令是crontab-e被#注释的东西不必在意,目前只做了一个任务当时的参考文章,后期找到了高级用法,有空看看,感觉能用到#Eachtasktorun
- crontab概念及其常用表达式
iangyu
数据库网络oracle
Crontab是Linux和类Unix操作系统中用来周期性地执行任务的工具。通过Crontab,用户可以配置系统在指定的时间间隔内自动执行命令、脚本或程序。以下是Crontab的基本使用方法和一些常见的示例:Crontab基本概念Crontab文件:每个用户可以通过crontab-e命令编辑自己的Crontab文件,用来设置定时任务。系统的全局Crontab文件通常位于/etc/crontab或者
- 服务维护之crontab定时监测告警
羽恒
项目维护中服务会不定时的出现异常,比如502、404、101等等,当工作任务繁重时又不能实时监测,而linux的运维者,逃脱不了定时任务的命题,最常用和快捷简单的是crontab,在少量机器的情况下,crontab效率还是比较高和比较便捷。但当机器越多、应用越多的情况下,继续使用crontab进行定时任务的管理配置,那严重影响工作效率。但crontab执行后结果如何如果不登录服务器一般不能实施感知
- 【Tomcat】在 linux 上实现 Catlina.log 自动分割,防止文件过大
hello1huan
tomcattomcatlinuxjava
背景描述catalina.out即标准输出和标准出错,所有输出到这两个位置的都会进入catalina.out,这里包含tomcat运行自己输出的日志以及应用里向console输出的日志。默认这个日志文件是不会进行自动切割的,所以我们需要借助其他工具进行切割(注意:catalina.out文件如果过大会影响性能)工具logrotate(linux自带)crontab(linux自带)具体实现第一步创
- CentOS上如何配置手动和定时任务自动进行时间同步
霸道流氓气质
Linuxcentoslinux运维
场景Linux(Centos)上使用crontab实现定时任务(定时执行脚本):Linux(Centos)上使用crontab实现定时任务(定时执行脚本)_centos定时任务-CSDN博客Winserver上如何配置和开启NTP客户端进行时间同步:Winserver上如何配置和开启NTP客户端进行时间同步_配置windowsntp客户端-CSDN博客在Centos上如何进行手动同步时间和定时任务
- 刷题之旅第46站,CTFshow 内部赛web03
圆圈勾勒成指纹
刷题之旅100站nginxcentosjava安全
感谢ctfshow平台提供题目打开题目,是一张图片,猜测是连接菜刀,密码是cai连接成功了。在根目录发现flag,但是没有权限打开。需要提权,根据提示,漏洞大约每两分钟触发一次,查看一下定时任务。cat/etc/crontab看到了一个每1分钟执行一次的任务,重启nginx。查资料找到漏洞编号:SSV-92538https://www.seebug.org/vuldb/ssvid-92538把po
- 18-k8s控制器资源-cronjob控制器
心机の之蛙
k8s系列kubernetes容器云原生
job控制器是执行完一次任务,就结束;cronjob控制器,是基于job控制器,定期频率性执行任务;等同于linux系统中的crontab一样;1,编辑cronjob资源清单[root@k8s231pi]#vimcronjob.yamlapiVersion:batch/v1kind:CronJobmetadata:name:xinjizhiwaspec:schedule:"*****"#定义job
- Docker中Django定时任务django-crontab--crontab任务不生效
Alfred_SAMA
DjangoDockerPythondjangodockerpython
问题点我使用Docker部署项目,启动的crontab的时候并未生效,添加定时任务时提示:/usr/bin/crontabnotfound基本使用django默认不带定时任务的功能,本文使用django-crontab插件实现定时任务。$pipinstalldjango-crontabsettings中配置INSTALLED_APPS=('django_crontab',)创建定时任务#myapp
- Django定时任务之django-crontab
贾维斯Echo
djangopython后端
Django定时任务之django-crontab一.官网GitHub地址:https://github.com/kraiz/django-crontab优点:接入也很方便,功能也很全面缺点:存在一些坑和无法解决的问题,使用时需注意注意:django-crontab只能基于linux环境使用二.基本使用1.安装pipinstalldjango-crontab2.注册APP,配置到settingsI
- django定时任务(django-crontab)
攻城狮的梦
python开发djangopython后端
目录一:安装django-crontab:二:添加django_crontab到你的INSTALLED_APPS设置:三:运行crontab命令来创建或更新cron作业:四:定义你的cron作业五:创建你的管理命令:六:重启cron服务:在Django中,你可以使用多种方法来实现定时任务。其中,django-crontab是一个流行的第三方库,它允许你在Django项目中轻松设置和管理cron作业
- linux crontab服务管理,定时任务设置(编辑查询删除定时任务、编写脚本定时执行)
但行益事莫问前程
linux命令linux
文章目录1.crontab服务管理2.crontab定时任务设置1.crontab服务管理 crontab是用来定期执行程序的命令查看系统crond.service状态systemctlstatuscrond.service2.crontab定时任务设置crontab[选项]选项功能-e编辑crontab定时任务-l查询crontab任务-r删除当前用户所有的crontab任务任务格式:f1f2
- 权限提升:利用Linux错配提权
未知百分百
安全ATT&CKlinuxlinux运维服务器网络安全web安全权限提升
目录Linux权限基础Linux用户权限Linux文件权限特殊的Linux文件权限Linux本机信息收集Linux错配提权crontab计划任务提权SUID提权Linux权限基础Linux用户权限在Linux中,根据权限的不同,大致可以分为三种:超级用户(root)、普通用户、虚拟用户,从Linux中的/etc/password文件中,我们可以很详细的了解当前系统内每一个用户的不同之处,文件内容如
- java 分布式任务队列_cerely-分布式异步任务队列
weixin_39772388
java分布式任务队列
Celery是一个强大的分布式任务队列的异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行。我们通常使用它来实现异步任务(asynctask)和定时任务(crontab)。在Celery中几个基本的概念,需要先了解下,不然不知道为什么要安装下面的东西。概念:Broker、Backend。brokerbroker是一个消息传输的中间件或消息队列,可以理解为一个邮箱。每当应
- crontab的坑!日期配置无效
super_lpc
分,时,日,月,星期,都配置了,由于配置比较多周,出现的问题;故做了如果下测试crrontab-L【测试日期为,6月16日星期三】【执行】3091663echo"3091663">>/opt/1.txt【执行】31916*3echo"31916*3">>/opt/1.txt【执行】329**3echo"329**3">>/opt/1.txt【执行】339166*echo"339166*">>/op
- 在Linux命令行输入crontab -l,不能看见添加的cron任务
C++QT
linux运维服务器
问题描述:添加了cron任务,但是使用crontab-l命令无法看到添加的任务,这通常意味着任务没有被正确添加到crontab文件中,或者可能在查看错误的用户的crontab。解决方法:每个用户的crontab文件通常存在/var/spool/cron/crontabs/目录下,并且文件名就是用户名1.任务没有被正确添加到crontab文件编辑root用户下的crontab文件,在命令行输入:na
- 这MySQL错误日志异常也太猛了吧
4/5$全真龙门
linux服务器运维数据库MySQL
作者:田逸(formyz)一台核心业务数据库,版本为MySQL8.34社区服务器版。从上线以来,这个数据库服务器的错误日志增增加非常迅猛(如下图所示),每24小时能增加到10多个G的容量。因为有故障报警,也还没有影响到业务的正常访问,有关人员不让重启MySQL服务。鉴于这个情况,我只好设置一个自动计划任务,在每晚的夜间定点清理这些日志。具体的操作时候在系统命令行,执行“crontab-e”,添加如
- Linux笔记
keaiduoduo
[root@linuxprobe~]#vimexample.sh(脚本声明#!)/bin/bash(注释#)ForExampleBYZRpwdls-alShell脚本crontab命令在脚手架服务器中,配置的是每隔5小时执行check.sh脚本
- celery定时、周期任务示例详解
天魔老师
python后端celery定时周期任务详解
代码s4.pyfromceleryimportCeleryfromcelery.schedulesimportcrontabapp=Celery('tasks',broker='redis://127.0.0.1:6379',backend='redis://127.0.0.1:6379')@app.on_after_configure.connectdefsetup_periodic_tasks
- mysql的触发器以及事件调度器实现定时更新数据库
史史小子
最近项目中需要实现一个功能,定时更新数据库中不正常的数据,因为服务器是windows的,所以linux的crontab不可用,而windows的bat调用感觉不太好,框架用的是tp5,tp框架定时任务总是要主动触发才能生效,所以最终选择了mysql的事件调度器结合触发器实现。1:查看mysql是否开启了事件,如果是OFF或者0,表示是关闭的。showVARIABLESLIKE'%sche%';//
- Linux下的crontab定时执行任务命令详解
chjqxxxx
linux服务器运维
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps-ef|grepcron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“crontable”的简写。一、cron服务cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。servicecrondstart//启动服务servicecr
- linux系统定时任务管理
戏神
linux运维服务器
crontab使用一、crontab简介crontab这个指令所设置的工作将会循环的一直进行下去!可循环的时间为分钟、小时、每周、每月或每年等。crontab除了可以使用指令执行外,亦可编辑/etc/crontab来支持。至于让crontab可以生效的服务则是crond这个服务。二、crontab配置1)关于crontab和crond用到crontab那么就一定要知道crond,crond和cro
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http