跑内存的脚本
在
linux
中,/proc/$PID/status
文件提供了该进程资源(内存,堆栈,信号量,子父进程)的使用情况,虽然linux提供了不少查看内存的命令,但都是看整体的使用情况,无法对单个进程的内存使用情况进行查看。
本文为大家提供的这个脚本,通过查看status文件中VmRSS的字段来查看系统或进程使用的内存情况,有需要的朋友不妨参考下。
复制代码:
#!
/bin/bash
echo
-n
PidName
>
/root/script/pid.f
echo
MeMery
>>
/root/script/pid.f
PIDPATH=/proc/
TOTLE=0
cd
$PIDPATH
DOC=`ls`
for
DOCNAME
in
$DOC
do
if
[
-d
$DOCNAME
];
then
cd
$DOCNAME
if
[
-f
status
];then
MEMERY=`grep
VmRSS
status
|
awk
-F':'
'{print
$2}'
|
awk
'{print
$1}'`
PIDNAME=`grep
Name
status
|
awk
-F':'
'{print
$2}'`
if
[
$MEMERY
];
then
echo
-n
$PIDNAME
>>
/root/script/pid.f
echo
-n
>>
/root/script/pid.f
echo
$MEMERY
>>
/root/script/pid.f
TOTLE=`expr
$TOTLE
+
$MEMERY`
cd
..
else
cd
..
fi
else
cd
..
fi
fi
done
TOTLE=`expr
$TOTLE
/
1024`
echo
TOTLE
USERD:
$TOTLE
MB
>>
/root/script/pid.f
cat
/root/script/pid.f
‘贰’ 用shell脚本自动定时清除/释放内存
Linux系统buff/cache 中缓存数据占用内存过高,定时清理buff/cache ,释放系统内存
root权限创建脚本文件:
cat clean_cache.sh
设置定时任务,每隔2小时运行一次:
crontab -e
0 */2 * * * sh /usr/local/bin/clean_cache.sh
‘叁’ 内存脚本和按键脚本区别
内存脚本和按键脚本区别:
1、内存脚本不同于PC端,做脚本的思维方式很多都是不同的,不要把PC端的思维强加进去,按键脚本,一步两步在h5页面中的目标是通过点击1步/2步,避免掉下去的情况下得到高分,另外能吃到硬币有额外加分。
2、内存脚本优点:优点是存取速度快、读写方便,缺点是数据不能长久保持,断电后自行消失,按键脚本的缺点鼠标点击的地方是固定死板的,且延迟时间无法调整。
‘肆’ 读内存的按键精灵脚本怎么写的
VBS dim qiu,hz
Plugin hz=Window.Foreground()
Plugin qiu=Memory.ReadSingle(hz,&H08FE5E5C)
MessageBox ""&cint(qiu)&""
VBS qiu=""&cint(qiu)&""
Rem 开始
Plugin hz=Window.Foreground()
Plugin qiu=Memory.ReadSingle(hz,&H08FE5E5C)
If qiu>=100
Delay 500
KeyPress 51,3
Delay 5000
EndIf
Delay 500
Goto 开始
上面这段代码是用按键精灵读取一个游戏内存信息的代码,当读取到的信息大于或等于100的时候就按键盘上的3键,功能是实现了
模仿这个 应该会写了吧
另外 鄙视一下一楼的 你这算什么啊
‘伍’ 内存脚本用什么写
内存脚本用数据方面写。
内存脚本:数据方面依靠内存地址,操作方面用模拟按键。
内存挂:数据方面依靠内存地址,操作方面调用游戏本身的函数,也就是人家说的关键CALL。
ce找动态地址,基址,汇编一些命令,简单了解知道,能看懂内存里面的汇编代码就可以,不用深入,会调用系统api,当然不用api用别人的模块也可以,例如精易模块,超级模块,魔鬼作坊的模块,都可以都有打包好的内存操作功能。
特点:
1、脚本语言(JavaScript、VBscript等)介于HTML和C、C++、Java、C#等编程语言之间。HTML通常用于格式化和链接文本。而编程语言通常用于向机器发出一系列复杂的指令。
2、脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相像一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些。
3、与程序代码的关系:脚本也是一种语言,其同样由程序代码组成。
‘陆’ 求一个Windows脚本:当内存使用率超过90%时,自动重启。每一个小时执行一次
strComputer="."
setobjWMI=GetObject("winmgmts:\"&strComputer&" ootcimv2")
setcolOS=objWMI.InstancesOf("Win32_OperatingSystem")
Setshell=CreateObject("WScript.Shell")
Do
foreachobjOSincolOS
strReturn=Round(((objOS.TotalVisibleMemorySize-objOS.FreePhysicalMemory)/objOS.TotalVisibleMemorySize)*100)
if(strReturn>90)Then
shell.run("shutdown.exe-r-t0")
endif
wscript.sleep1000*1//这个地方是每隔1秒检测内存使用率,如果要每小时就改成1000*3600
next
Loop
把这段代码保存成vbs格式的文件,并添加开机自动启动,可以用组策略,
开始→运行→输入gpedit.msc。
用户配置→管理模板→系统→登录,在右边有个“在用户登录时运行这些程序”,选中刚才保存的vbs文件
‘柒’ 提高linux脚本cpu和内存使用率
linuxt提供了系统函数sysconf()用来读取CPU和内存信息,先来了解一下sysconf()函数吧。
头文件
#include<unistd.h>
函数原型
long sysconf (int name);
说明
sysconf() 返回选项 ( 变量) 的当前值,这个值可配置的但也是受系统限制的。在成功完成的情况下,sysconf() 返回 变量的当前值。该值受到的限制将少于编译时 <limits.h>, <unistd.h> 或 <time.h> 中可用的对应值。大多数这些 变量的值在调用进程的生存时间内不变。
如果出错,那么函数返回 -1 ,并适当地设置 errno 。当没有错误发生时, -1 也是一个合法的返回值。因此,程序要检查错误,应该在调用 sysconf() 之前将 errno 设置为 0 ,然后,如果返回 -1,则检验到错误。
参数 name 指定我们感兴趣的运行时限制的名字,它必须是以值中之一(除非另有说明,否则返回值都是整数):
_SC_2_C_BIND : 一个布尔值,指出是否支持 POSIX C 语言绑定。返回值是 _POSIX2_C_BIND 。
_SC_2_C_DEV : 一个布尔值,指出是否支持 POSIX C 语言开发使用工具选项。返回值是 _POSIX2_C_DEV 。
_SC_2_C_VERSION : 它指出支持哪一个 ISO POSIX.2 标准 (命令) 的版本。返回值是 _POSIX2_C_VERSION 。
_SC_2_CHAR_TERM : 一个布尔值,指出是否至少支持一个 终端。返回值是 _POSIX2_CHAR_TERM 。
_SC_2_FORT_DEV : 一个布尔值,指出是否支持 FORTRAN 开发使用工具选项。返回值是 POSIX2_FORT_DEV 。
注意:1、 CLK_TCK 的值是可变的,因此,不应该假设它是一个 编译时间 常量。
2、调用 setrlimit 会使 OPEN_MAX 的值发生改变。
3、 通过将 sysconf (_SC_PHYS_PAGES) 和 sysconf (_SC_PAGESIZE) 相乘,来确定 物理内存的总量 (以 字节为单位) 可以返回一个值,该值超出 32 位进程中 long 或 unsigned long 可表示的最大值。同样适用于通过将 sysconf (_SC_PAGESIZE) 和 sysconf (_SC_AVPHYS_PAGES) 想乘,来确定未使用的 物理内存的总量 (以 字节为单位)。这个问题有两个工作区。第 1 个工作区将程序作为 64 位的进程进行编译 (从而使 long 足够大到可以容纳乘法运算的结果) ,但是,这样做的缺点是得到的程序只能在 64 位的内核中运行。第 2 个工作区是用来将得到的乘法运算结果存储在一个 64 位的量中,如 longlong_t (Solaris OS 类型) 或 long long (linux)。它的有点是可以在 32 位和 64 位的内核中正确工作。