tmp

笔记基本分类-作业(权限管理)

烂漫一生 提交于 2020-03-21 06:54:40
1.创建目录/home/admins;所属组为adminuser; adminuser组成员对目录有读写执行的权限; 其他所有用户没有任何权限(root用户除外) 在/home/admins目录中创建的新文件,会自动继承adminuser组。 mkdir /home/admins chown .adminuser /home/admins/ chmod g+w,o-rx /home/admins chmod 770 /home/admins chmod g+s /home/admins 2.配置文件/var/tmp/fatab的权限, 拷贝/etc/fstab到/var/tmp,属主和属组为root,任何人都不能执行,natasha能读写,harry没有任何权限 cp /etc/fstab /var/tmp/ setfacl -m u:natasha:rw /var/tmp/fstab setfacl -m u:harry:- /var/tmp/fstab 3.如果目录的权限为以下样式,group1的组成员与其他人是否可以进入此目录 drwxr-xr-- user1 group1 1246 Jun 19 14:22 /test1 group1组成员可以进入此目录 其他人不可以进入此目录 4.jim用户创建目录work,修改目录的所属组为tom,设置组的权限为rwx useradd

HDU1007———作业题

只愿长相守 提交于 2020-03-21 05:51:59
服务器崩了,资料还没备份,回到博客园 HDU1007 题意: 给你一些在一个平面上的点的坐标,让你找出这堆点中,距离最短的两个点,距离的一半为多少? 题解: 数据 \(n=10^6\) ,如果我们枚举每个点的话,很明显复杂度将会达到 \(n^2\) ,这样必定会超时。 考虑使用分治。 首先我们把点按照 \(x\) 轴坐标从小到大排序 选取一个中点 \(mid\) ,将目前所有的点分成左右两边 \((1,mid),(mid+1,n)\) 目前可以推出结果只有三种情况 两个点都在左边 两个点都在右边 一个在左边,一个在右边 针对结果 \(1\) 和结果 \(2\) 我们都能递归求出,递归边界为当目前点的个数为 \(2\) 或者 \(3\) 的时候,我们可以直接算出结果。 这样我们目前得到了 \(Lmin\) 和 \(Rmin\) 。 接下来处理 第三种结果 。 由于我们先前得出了 \(Lmin\) 和 \(Rmin\) ,由此得 \(dis=min(Lmin,Rmin)\) 。 如果要验证第三种结果,必然由是一个左边的点连接右边的点,并且距离最短,那么我们自然是选取 \(mid\) 点。 接下来在 目前所有点 选出和 \(mid\) 点的 \(x\) 轴距离 不大于 \(dis\) 的所有点。(如果连 \(x\) 轴距离都大于dis,算上 \(y\) 轴距离只会更远) 把 选出来的点

golang for循环中使用 goroutine 产生的问题

一笑奈何 提交于 2020-03-20 10:29:18
3 月,跳不动了?>>> 最近在开发过程中遇到问题,追踪了很久后发现是golang的经典问题,在for循环中使用了goroutine,在goroutine中使用了for循环的参数。 问题现象: 在使用rabbitmq进行数据传递时,发送端在一次循环中发送了8000条id不同的数据到rabbitmq的队列中,接收端监听该队列并从rabbitmq中取数据。接收到的数据在程序中处理后写入数据库,结果发现数据中并没有写入8000条数据。最后定位原因为:在接收数据时在for循环中使用go协程,导致同时收到两条数据时,协程都是使用的后一条数据,入库因为是同一条数据,导致主键重复,插入失败,所以数据库中没有8000条数据。错误代码大致如下: 1 2 3 4 5 for d := range msgs { go func () { handler(d) }() } 用一个简单的程序模拟该错误为: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 package main import ( "fmt" "time" ) func main () { for i := 0; i < 10; i++ { go func () { fmt.Println(i) }() } time.Sleep( 2 * time.Second) } 输出为: 7 10 10 10 10 10 10 10

IDEA本地运行spark生成数据到hive中出错

拟墨画扇 提交于 2020-03-20 07:20:23
在window下通过idea开发,在代码中需要spark,使用loacl模式,生成一些数据存放到hive中,使用的也是spark自带的hive库。 在idea 运行时报错: Error while instantiating 'org.apache.spark.sql.hive.HiveSessionState': java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: --------- 报错信息可以看到是root想在/tmp/hive目录下写数据,而没有权限。 首先本地是否有/tmp/hive目录,再次确认此目录的权限。 解决办法: 从网上看到有帖子解决 系统中首先要配置hadoop环境和winutils工具 打开cmd命令提示符窗口,输入以下命令: winutils.exe ls F:\tmp\hive winutils.exe chmod 777 F:\tmp\hive winutils.exe ls F:\tmp\hive 3.再次运行idea程序,最终还是报错 实际解决办法: 系统中还是要安装hadoop环境和winutils工具; 打开cmd窗口,切换到idea程序所在的盘符下。 我的开发路径在e:

Python超级无敌技巧分享

风流意气都作罢 提交于 2020-03-18 18:02:26
这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。 注意:很多人学Python过程中会遇到各种烦恼问题,没有人解答容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新Python实战教程免非下,,一起相互监督共同进步! 1 排列组合 示例程序: #!/usr/bin/env python # coding=utf8 import itertools for p in itertools.permutations('ABC', 2): print p ''' ('A', 'B') ('A', 'C') ('B', 'A') ('B', 'C') ('C', 'A') ('C', 'B') ''' for c in itertools.combinations('ABC', 2): print c ''' ('A', 'B') ('A', 'C') ('B', 'C') ''' 通过itertools模块,可以很方便实现元素的排列和组合。由示例中可以看到,分别从ABC三个字母中取2个字母,实现其排列和组合,itertools模块还有很多有用功能,感兴趣可以看看。 2 创建临时文件 示例程序: #!/usr/bin/env python # -*- coding:

PHP 加密解密

有些话、适合烂在心里 提交于 2020-03-18 11:26:51
某厂面试归来,发现自己落伍了!>>> function enToken($txt) { $key = 'colin'; $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-"; $nh = rand(0, 64); $ch = $chars[ $nh ]; $mdKey = md5($key . $ch); $mdKey = substr($mdKey, $nh % 8, $nh % 8 + 7); $txt = base64_encode($txt); $tmp = ''; $k = 0; for ($i = 0; $i < strlen($txt); $i++) { $k = $k == strlen($mdKey) ? 0 : $k; $j = ($nh + strpos($chars, $txt[ $i ]) + ord($mdKey[ $k++ ])) % 64; $tmp .= $chars[ $j ]; } return urlencode($ch . $tmp); } function unToken($txt) { $key = 'colin'; $txt = urldecode($txt); $chars =

【算法技巧】位运算装逼指南

江枫思渺然 提交于 2020-03-17 03:03:13
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下 if( n % 2) == 01 // n 是个奇数 }   如果把 n 以二进制的形式展示的话,其实我们只需要判断最后一个二进制位是 1 还是 0 就行了,如果是 1 的话,代表是奇数,如果是 0 则代表是偶数,所以采用位运算的方式的话,代码如下: if(n & 1 == 1){ // n 是个奇数。 }    有人可能会说,我们写成 n % 2 的形式,编译器也会自动帮我们优化成位运算啊,这个确实,有些编译器确实会自动帮我们优化。但是,我们自己能够采用位运算的形式写出来,当然更好了。别人看到你的代码,我靠,牛逼啊。无形中还能装下逼,是不是。当然,时间效率也快很多,不信你去测试测试。 2、交换两个数 交换两个数相信很多人天天写过,我也相信你每次都会使用一个额外来变量来辅助交换,例如,我们要交换 x 与 y 值,传统代码如下: int tmp = x; x = y; y = tmp;  

写给大忙人看的Git案例总结

我的未来我决定 提交于 2020-03-17 00:50:58
全部案例 配置git用户名邮件 单纯的下载一个仓库 将远程仓库的更新拉到本地仓库(不影响本地已有的提交) 将本地修改上传到远程仓库 将本地更改上传到远程仓库,并使本地远程一致 新建一个仓库并用本地代码初始化 我不想同步某些文件/文件夹 从master创建临时分支作修改,然后合并到主分支 删除仓库所有历史记录,仅保留当前文件 修改前n次commit的提交信息 配置git用户名邮件 git config --global user.name "Your Name" git config --global user.email "email@example.com" 单纯的下载一个仓库 最常用的方法 git clone https://github.com/xxx/xxx.git 项目太大,想快点下载,不需要历史记录 git clone --depth 1 https://github.com/xxx/xxx.git 想快速下载非master分支 git clone --depth 1 https://github.com/xxx/xxx.git cd xxx git remote set-branches origin 'remote_branch_name' git fetch --depth 1 origin remote_branch_name git checkout

PHP生成N个不重复的随机数

浪尽此生 提交于 2020-03-15 17:49:44
原理就是将数组顺序随即打乱 ,然取该数组中的某一段 方法1: <?php //range 是将1到100 列成一个数组 $numbers = range (1,100); //shuffle 将数组顺序随即打乱 shuffle ($numbers); //array_slice 取该数组中的某一段 $result = array_slice($numbers,0,3); print_r($result); ?> 方法2: <?php $numbers = range (1,20); srand ((float)microtime()*1000000); shuffle ($numbers); while (list (, $number) = each ($numbers)) { echo "$number "; } ?> 方法3: 用PHP,在1-20间随机产生5个不重复的值 <?php function NoRand($begin=0,$end=20,$limit=5){ $rand_array=range($begin,$end); shuffle($rand_array);//调用现成的数组随机排列函数 return array_slice($rand_array,0,$limit);//截取前$limit个 } print_r(NoRand()); ?>

MySQL-group-replication 配置

℡╲_俬逩灬. 提交于 2020-03-15 05:13:44
MySQL-Group-Replication 是mysql-5.7.17版本开发出来的新特性;它在master-slave 之间实现了强一致性, 但是就目前来说主要是性能不太好。 【1】确定当前的mysql数据库版本为5.7.17及以上 /usr/local/mysql/bin/mysqld --version /usr/local/mysql/bin/mysqld Ver 5.7.17 for linux-glibc2.5 on x86_64 (MySQL Community Server (GPL)) 【2】实验环境为一台主机上安装3台mysql,它们三个组成一个group-replication 组   /tmp/4406.cnf 内容如下: [mysqld] ####: for global user =jianglexing # mysql basedir =/usr/local/mysql # /usr/local/mysql/ datadir =/tmp/4406/ # /usr/local/mysql/data server_id =4406 # 0 port =4406 # 3306 socket =/tmp/4406/mysql.sock # /tmp/mysql.sock auto_increment_increment =1 # 1 auto