Giter Site home page Giter Site logo

spiritlhls / oracle-server-keep-alive-script Goto Github PK

View Code? Open in Web Editor NEW
1.5K 12.0 362.0 211 KB

服务器资源占用脚本(甲骨文服务器保活脚本)(Oracle Server Keep Alive Script)

Home Page: https://ko-fi.com/spiritlhl

License: MIT License

Shell 100.00%
alive centos debian oracle redhat server ubuntu bash oracle-cloud dynamic

oracle-server-keep-alive-script's Introduction

Oracle-server-keep-alive-script

Hits

甲骨文服务器保活脚本

适配系统:已在Ubuntu 20+,Debian 10+, Centos 7+, Oracle linux 8+,AlmaLinux 8.5+

上述系统验证无问题,别的主流系统应该也没有问题

可选占用:CPU,内存,带宽

安装完毕后如果有问题请卸载脚本反馈问题(重复卸载也没问题)

所有资源(除了CPU)可选默认配置则动态占用,实时调整,避免服务器有别的任何资源已经超过限额了仍然再占用资源

为避免GitHub的CDN抽风加载不了新内容,所有新更新已使用Gitlab仓库

由于speedtest-go的release依赖于GitHub,所以请检查 www.githubstatus.com ,有问题时无法安装带宽占用

请留意脚本当前更新日期:2023.09.24.08.37

由于友人实测,资源占用感觉也是玄学,一个号四个服务器全部停机,但号还在,也有人一直不占用,但就是没停机的问题,所以该项目将长期保持现有状态,非必要不再更新

也有说要在上面解析一个网址做一个网站挂着的,感觉也是玄学,自己测试吧

说明

选项1安装,选项2卸载,选项3更新安装引导脚本,选项4退出脚本

安装过程中无脑回车则全部可选的占用都占用,不需要什么占用输入n再回车

如果选择带宽占用,会询问使用speedtest-go占用还是使用wget占用,按照提示进行选择即可

有询问是否需要带宽占用的参数自定义,这时候默认选项就是n,回车就使用默认配置,输入y再回车则需要按照提示自定义参数

curl -L https://gitlab.com/spiritysdx/Oracle-server-keep-alive-script/-/raw/main/oalive.sh -o oalive.sh && chmod +x oalive.sh && bash oalive.sh

bash oalive.sh

bash <(wget -qO- --no-check-certificate https://gitlab.com/spiritysdx/Oracle-server-keep-alive-script/-/raw/main/oalive.sh)

特点

  • 提供两种CPU占用模式:DD模拟占用和科学计算模式,用户可以自由选择,占用范围设置在15%至25%之间,更推荐DD模拟占用。
  • DD模拟占用在守护进程中设置了CPU占用的最高限制。
  • 默认情况下,CPU占用设置为25%最高值,计算方法是核数乘以20%,如果计算结果低于25%,则设置为25%;如果计算结果高于25%,则按照计算结果的比例进行设置。
  • 内存占用设置为占用总内存的25%,占用时间为300秒,休息时间为300秒。
  • 每300秒检测一次内存占用情况,并根据需要动态调整占用大小。如果内存占用已经大于25%,则不增加占用。
  • 在占用过程中,使用守护进程和开机自启服务,以确保占用任务持续且有效。
  • 默认选项的带宽占用每45分钟下载一次大小在1G至10G之间的文件,只进行下载而不保存。在下载过程中会占用硬盘空间,但在下载完成后会自动释放。
  • 默认选项的带宽占用动态调整实际下载的带宽/速率,限制每次下载的最长时长为6分钟。在每次下载之前,会测试最大可用带宽,并根据实时结果将下载速率设置为30%的带宽。
  • 带宽占用测试使用了speedtest-cli和speedtest-go两种工具,以防其中之一不可用时使用第二种工具,用户可以自定义设置带宽占用,此时详见设置提示。
  • 提供一键卸载所有占用服务的选项,卸载将删除所有脚本、服务、任务、守护进程和开机自启设置。
  • 提供一键检查更新的功能,更新范围仅限于脚本更新。请在更新后重新设置占用服务
  • 对所有进程执行增加唯一性检测,避免重复运行,使用PID文件进行判断。

如若不希望一键的,希望自定义设置时间的,请查看README_CRON.md自行设置定时任务

友链

VPS融合怪测评脚本

https://github.com/spiritLHLS/ecs

一键虚拟化项目

国内 https://virt.spiritlhl.net/

国际 https://www.spiritlhl.net/

Stargazers over time

Stargazers over time

oracle-server-keep-alive-script's People

Contributors

doublewinter0 avatar spiritlhls avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

oracle-server-keep-alive-script's Issues

2023.03.06.12.44版本,安装带宽限制时,提示“不支持该架构:aarch64”

报错情况如下,前两项安装成功,安装到第三项时 报错
请问该如何解决?
谢谢!

需要限制带宽吗? ([y]/n): y
speedtest-cli not found, installing...
Installing speedtest-cli
Updating package management sources
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 2:37:46 ago on Fri Mar 10 09:44:00 2023.
No match for argument: speedtest-cli
Error: Unable to find a match: speedtest-cli
不支持该架构:aarch64

脚本安装后是一直在后台运行吗

请问脚本安装完成后,如果不执行选项2和选项3,会一直在后台运行吗?
一直后台运行的话,就能满足甲骨文的3条规则,就不会被甲骨文停机了?

wget好像不能用

Created symlink /etc/systemd/system/timers.target.wants/bandwidth_occupier.timer → /etc/systemd/system/bandwidth_occupier.timer.
Failed to start bandwidth_occupier.timer: Unit bandwidth_occupier.timer has a bad unit file setting.
See system logs and 'systemctl status bandwidth_occupier.timer' for details.
oalive.sh: line 198: restorecon: command not found
oalive.sh: line 199: restorecon: command not found
Failed to start bandwidth_occupier.timer: Unit bandwidth_occupier.timer has a bad unit file setting.
See system logs and 'systemctl status bandwidth_occupier.timer' for details.
带宽限制安装成功 脚本路径: /usr/local/bin/bandwidth_occupier.sh
The bandwidth limit script has been installed at /usr/local/bin/bandwidth_occupier.sh

adm机器不抗折腾啊

发现今天AMD小鸡RAM动不动就被干到90%+,然后哪吒探针TG就显示故障了,SSH登不上,缓了半天才好,但是会重复,哪吒探针TG报警不断。。。ARM机2+12的相对抗折腾,干不到90%+以上

带宽占用自定义逻辑优化

希望作者调整一下带宽占用选择自定义时的脚本逻辑。
在每个带宽占用周期,满速探测带宽时,短时间会对服务器的响应速度造成较大影响。希望改为:在选择自定义带宽占用的情况下,直接按照限速下载文件,无需使用speedtest进行测速,避免测速时影响网络流量。
谢谢!

最新版的又出bug了

最新版的又出bug了,内存占用并未生效,机器为首尔arm,更新脚本并重新安装最新脚本
1679919987888

建议调整 Updating package management sources 设置

建议将 Updating package management sources 去除或单列为脚本的一个选项。 不然每次启动脚本都要强制先 update 一下,非常占用时间。而且生产环境下,有很多 package 是不需要更新的,否则可能会出现诸多奇怪的问题。

大佬 这个咋回事???

== AUTHENTICATING FOR org.freedesktop.systemd1.manage-unit-files ===
Authentication is required to manage system service or unit files.
Authenticating as: Ubuntu (ubuntu)
Password: Failed to enable unit: Connection timed out
polkit-agent-helper-1: pam_authenticate failed: Authentication failure
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'cpu-limit.service'.
Authenticating as: Ubuntu (ubuntu)
Password:
Password:
polkit-agent-helper-1: pam_authenticate failed: Authentication failure
==== AUTHENTICATION FAILED ===
Failed to reload daemon: Access denied
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-unit-files ===
Authentication is required to manage system service or unit files.
Authenticating as: Ubuntu (ubuntu)
Password: Failed to enable unit: Connection timed out
polkit-agent-helper-1: pam_authenticate failed: Authentication failure
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'cpu-limit.service'.
Authenticating as: Ubuntu (ubuntu)

设置可自定义运行脚本的时间区间

1、关于带宽占用,能不能增加一个设置,就是在指定时间区间内才执行带宽占用,比如我白天的时候不怎么用服务器此时基本没有流量,这个时候脚本执行带宽占用规则就很好模拟了使用情况,但是夜晚的时候我就会使用服务器做代理,这个时候流量就起来了,这个时段暂停带宽占用,这个想法大佬能实现么?
2、这个项目我一直有关注着,非常好的项目(其实每天都会看看有没有更新),可是最近的更新都没写更新内容,这就有点失望哈哈哈哈

wget报错

Aug 28 10:39:09 kr3 systemd[1]: bandwidth_occupier.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 28 10:39:09 kr3 systemd[1]: bandwidth_occupier.service: Failed with result 'exit-code'.
Aug 28 10:40:12 kr3 systemd[1]: Started Bandwidth Occupier Service.
Aug 28 10:40:12 kr3 bash[2832793]: /usr/local/bin/bandwidth_occupier.sh: line 40: syntax error near unexpected token fi' Aug 28 10:40:12 kr3 bash[2832793]: /usr/local/bin/bandwidth_occupier.sh: line 40: fi'
Aug 28 10:40:12 kr3 systemd[1]: bandwidth_occupier.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 28 10:40:12 kr3 systemd[1]: bandwidth_occupier.service: Failed with result 'exit-code'.
Aug 28 10:41:12 kr3 systemd[1]: Started Bandwidth Occupier Service.
Aug 28 10:41:12 kr3 bash[2832966]: /usr/local/bin/bandwidth_occupier.sh: line 40: syntax error near unexpected token fi' Aug 28 10:41:12 kr3 bash[2832966]: /usr/local/bin/bandwidth_occupier.sh: line 40: fi'
Aug 28 10:41:12 kr3 systemd[1]: bandwidth_occupier.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 28 10:41:12 kr3 systemd[1]: bandwidth_occupier.service: Failed with result 'exit-code'.
Aug 28 10:42:12 kr3 systemd[1]: Started Bandwidth Occupier Service.
Aug 28 10:42:12 kr3 bash[2833020]: /usr/local/bin/bandwidth_occupier.sh: line 40: syntax error near unexpected token fi' Aug 28 10:42:12 kr3 bash[2833020]: /usr/local/bin/bandwidth_occupier.sh: line 40: fi'
Aug 28 10:42:12 kr3 systemd[1]: bandwidth_occupier.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 28 10:42:12 kr3 systemd[1]: bandwidth_occupier.service: Failed with result 'exit-code'.
Aug 28 10:43:18 kr3 systemd[1]: Started Bandwidth Occupier Service.
Aug 28 10:43:18 kr3 bash[2833165]: /usr/local/bin/bandwidth_occupier.sh: line 40: syntax error near unexpected token fi' Aug 28 10:43:18 kr3 bash[2833165]: /usr/local/bin/bandwidth_occupier.sh: line 40: fi'
Aug 28 10:43:18 kr3 systemd[1]: bandwidth_occupier.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 28 10:43:18 kr3 systemd[1]: bandwidth_occupier.service: Failed with result 'exit-code'.
Aug 28 10:44:20 kr3 systemd[1]: Started Bandwidth Occupier Service.
Aug 28 10:44:20 kr3 bash[2833219]: /usr/local/bin/bandwidth_occupier.sh: line 40: syntax error near unexpected token fi' Aug 28 10:44:20 kr3 bash[2833219]: /usr/local/bin/bandwidth_occupier.sh: line 40: fi'
Aug 28 10:44:20 kr3 systemd[1]: bandwidth_occupier.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 28 10:44:20 kr3 systemd[1]: bandwidth_occupier.service: Failed with result 'exit-code'.
Aug 28 10:45:24 kr3 systemd[1]: Started Bandwidth Occupier Service.
Aug 28 10:45:24 kr3 bash[2833270]: /usr/local/bin/bandwidth_occupier.sh: line 40: syntax error near unexpected token fi' Aug 28 10:45:24 kr3 bash[2833270]: /usr/local/bin/bandwidth_occupier.sh: line 40: fi'
Aug 28 10:45:24 kr3 systemd[1]: bandwidth_occupier.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 28 10:45:24 kr3 systemd[1]: bandwidth_occupier.service: Failed with result 'exit-code'.
Aug 28 10:46:24 kr3 systemd[1]: Started Bandwidth Occupier Service.
Aug 28 10:46:24 kr3 bash[2833347]: /usr/local/bin/bandwidth_occupier.sh: line 40: syntax error near unexpected token fi' Aug 28 10:46:24 kr3 bash[2833347]: /usr/local/bin/bandwidth_occupier.sh: line 40: fi'
Aug 28 10:46:24 kr3 systemd[1]: bandwidth_occupier.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 28 10:46:24 kr3 systemd[1]: bandwidth_occupier.service: Failed with result 'exit-code'.
Aug 28 10:47:26 kr3 systemd[1]: Started Bandwidth Occupier Service.

一个小小的显示优化建议

能不能在载入脚本后显示当前CPU,内存,带宽是否在执行,要是还能显示当时安装的参数就更好了,例如“CPU占用:20%”这样,因为有时候都忘记了有没有装保护脚本了哈哈哈哈哈

有方法可以 ansible 直接運行嗎?

我的vm為方便管理, 可以 ansible 批量運行, [Oracle-server-keep-alive-script] 是否可以不用 interactive?
而最好 Oracle-server-keep-alive-script 能夠隨意更改名稱 以防 oracle 的agent 探查...

ocracle 定义Idle的具体规则是什么 定时任务问题

经过连续两天使用脚本,最终还是被oracle停用。所以对于规则到底是什么?

另外,关于脚本可否自行设定启停?自己加计划任务来做就好。否则自己的业务在用时,只能卸载。然后再用再安装,很麻烦。

P.S. 附被停用前的实际占用率

image

2023.03.05.20.34 版本會導致 web service 異常

我有三台機器,一台 ubuntu, 兩台 centos
今天更新後三台機器 web 都掛了
ubuntu 使用 caddy 2.x, centos 使用 caddy 1.x
三台機器 caddy 服務狀態都顯示正常
重啟 firewalld 無法解決
必須重啟 caddy service 才行
在更新前沒有這麼現象

2023.03.20.20.36 版本的带宽占用有问题

作者你好
今天更新脚本到2023.03.20.20.36后,重新服务发现测速脚本不运行了,脚本更新几个小时后甲骨文实例流量一点都没有增加,希望修正一下,谢谢
bug

怎么使用?

安装完成了。这些script是怎么运行的?crontab里面没有东西。

Oracle-Linux-8.7安装带宽占用时报错Failed to start bandwidth_occupier.timer: Unit bandwidth_occupier.timer not found

需要自定义带宽占用的设置吗? (y/[n])

使用默认配置,45分钟间隔,请求10分钟,请求速率为最大速度的20%
Failed to start bandwidth_occupier.timer: Unit bandwidth_occupier.timer not found.
Failed to enable unit: Unit file bandwidth_occupier.timer does not exist.
带宽限制安装成功 脚本路径: /usr/local/bin/bandwidth_occupier.sh
The bandwidth limit script has been installed at /usr/local/bin/bandwidth_occupier.sh

貌似流量保活有问题

设置了自定义,怎么设都会有大流量进出,就算设10m带宽1小时一次,一天也会跑一两百g

反馈问题前的要求(如何查看日志)

注意,如果你的机器DD过后甲骨文后台无资源监控,那么使用本套脚本很可能无济于事,这种情况的不要开issue了

提问的麻烦给出报错日志或者以下命令的查询截图
执行htop或者top截个图

cat /tmp/memory-limit.pid
cat /tmp/cpu-limit.pid
cat /tmp/bandwidth_occupier.pid
service cpu-limit status
service memory-limit status
service bandwidth_occupier status

执行这些查看安装的服务是否正常
不给出查询截图的无法修复任何问题
截图直接粘贴到问题中Github会自动上传,不需要别的图床

如果某个服务有异常,执行

journalctl -u 服务名称 -n 50

查询对应日志

比如

journalctl -u bandwidth_occupier -n 50

Red Hat系列无法安装`speedtest-cli`

bandwidth(){
if ! command -v speedtest-cli > /dev/null 2>&1; then
echo "speedtest-cli not found, installing..."
_yellow "Installing speedtest-cli"
rm /etc/apt/sources.list.d/speedtest.list
${PACKAGE_REMOVE[int]} speedtest
${PACKAGE_REMOVE[int]} speedtest-cli
checkupdate
${PACKAGE_INSTALL[int]} speedtest-cli

报错如下:
image

希望作者能优化一下脚本,谢谢!

2023.03.06.12.44,一樣造成 caddy(非容器) 服務死掉 疑似 systemctl 问题

昨天太晚了,已經眼花
今天檢查,其實昨天 caddy 服務確實是死了
今天升級 2023.03.06.12.44,一樣造成 caddy 服務死掉

Mar 06 14:22:30 o3 caddy[680623]: {"level":"info","ts":1678083750.0312257,"msg":"shutting down apps, then terminating","signal":"SIGTERM"}
Mar 06 14:22:30 o3 caddy[680623]: {"level":"warn","ts":1678083750.0321887,"msg":"exiting; byeee!! 👋","signal":"SIGTERM"}
Mar 06 14:22:30 o3 caddy[680623]: {"level":"info","ts":1678083750.0413914,"logger":"tls.cache.maintenance","msg":"stopped background certificate>Mar 06 14:22:30 o3 caddy[680623]: {"level":"info","ts":1678083750.0425074,"logger":"admin","msg":"stopped previous server","address":"localhost:>Mar 06 14:22:30 o3 caddy[680623]: {"level":"info","ts":1678083750.0425303,"msg":"shutdown complete","signal":"SIGTERM","exit_code":0}
Mar 06 14:22:30 o3 systemd[1]: caddy.service: Succeeded.

Originally posted by @Lawlietr in #22 (comment)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.