浙江七巧板信息科技股份有限公司 技术VP/CTO,十年编程经验,七年管理经验,09年开始做Android,历经Android App,DELL手机系统,DELL平板系统,GM车载系统的开发,13年加入移动互联网创业大军,连续创业者,目前主攻JAVA架构,搜索引擎,大数据储存。
能力说明:
了解变量作用域、Java类的结构,能够创建带main方法可执行的java应用,从命令行运行java程序;能够使用Java基本数据类型、运算符和控制结构、数组、循环结构书写和运行简单的Java程序。
暂时未有相关云产品技术能力~
阿里云技能认证
详细说明2022年05月
2019年10月
埋点是网站和APP等产品进行日常改进及数据分析的数据采集基础,根据采集得到的用户行为数据
同比增长率=(本期数-同期数)÷同期数×100% 环比增长率=(本期数-上期数)/上期数×100%。
多线程为什么要采用同步机制,因为不同的线程有自己的栈,栈中可能引用了多个对象,而多个线程可能引用到了堆中的同一个或多个对象,而线程的栈内存当中的数据只是临时数据,最终都是要刷新到堆中的对象内存,这里的刷新并不是最终的状态一次性刷新,而是在程序执行的过程中随时刷新(肯定有固定的机制,暂不考虑),也许在一个线程中被应用对象中的某一个方法执行到一半的时候就将该对象的变量状态刷新到了堆的对象内存中,那么再从多线程角度来看,当多个线程对同一个对象中的同一个变量进行读写的时候,就会出现类似数据库中的并发问题,假设被引用对象中有一个变量SA=10,线程A读取到10,并且在栈中修改成了15但还没有刷新到堆中,线程B也读取到10,此时A刷新到堆中,则堆中被引用的变量的值变成了15,这个时候B将读取到的10修改为20,再次刷新到堆中,堆中被引用对象的变量SA值为20,这个时候A重新获取SA,发现不是15,而是20,显然出现了问题。针对上述问题,假设我们添加了同步机制,那么就可以很容易的解决。
通过#top -c排查CPU占内存很高的进程
19146 root 20 0 236236 5200 1024 S 99.7 0.1 9518:01 /tmp/wnTKYg
删除#/var/spool/cron下的自启动脚本,root和crontabs
通过进程查看到该文件目录为 /tmp下,删除wnTKYg并杀进程,但是4S后还会自启动,经过排查应该还有守护进程,在/tmp 目录下找到ddg.2020文件,删除该文件并停掉ddg.2020进程
删除#rm -rf Aegis。。。。 文件
重新检查wnTKYg和ddg.2020进程是否存在
问题总结
这样的病毒是直接远程连接redis,一般redis都是root安装的,连接redis也就掌握了root权限,它可以往你的定时任务里写内容
中这样的病毒大多都是因为redis没有设置密码,存在着很大的安全漏洞,所以大家要设置redis密码,并且更改redis的端口。安装时最好别用root安装。