yum保存要安装的rpm包及其依赖包

yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了 downloadonly (只下载)的选项来达到这个目的。

yum install --downloadonly <package-name>

默认情况下,一个下载的RPM包会保存在下面的目录中:

/var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages
以上的[repository]表示下载包的来源仓库的名称(例如:base、fedora、updates)

如果你想要将一个包下载到一个指定的目录(如/tmp):

yum install --downloadonly --downloaddir=/tmp <package-name>

注意,如果下载的rpm文件有其它的依赖关系,yum将会把所有的依赖关系包下载,但是都不会被安装。

另外一个重要的事情是,在CentOS/RHEL 6或更早期的版本中,你需要安装一个单独yum插件(名称为 yum-plugin-downloadonly)才能使用 downloadonly 命令选项:

yum install yum-plugin-downloadonly

如果没有该插件,你会在使用yum时得到以下错误:

Command line error: no such option: --downloadonly
评论关闭

txt文本文档导入mysql数据库

需求:有个密码字典需要导入mysql中以验证用户的密码是否出现在字典中,
如果存在就要求用户重新输入,所以必须有个密码字典表来查询。

密码文本文档内容为:
111
222
333
444
555
666
777
888
999

新建一个password表:

这里必须选择校对规则为utf8_bin,因为*_bin格式支持区分大小写,密码是区分大小写的。

执行SQL语句,从txt导入:

LOAD DATA INFILE 'C:/1.txt' INTO TABLE `password` LINES TERMINATED BY '\r\n';

C:/1.txt是文档的路径,BY ‘\r\n’ 是按照windows下的换行为一行导入。所以文本文档务必为DOS\WINDOWS格式。执行sql语句,提示9行受影响,

查看表数据:

导入成功。

如果是多个字段,那么表中创建对应字段,比如加入一个录入时间字段,那么对应的文档中,必须用TAB制表键隔开两个值,比如:

111 20161023  中间为TAB制表键隔开,不能用空格,空格会写到一个字段去。
222 20161024

评论关闭

linux下php以root权限执行shell脚本或系统命令

首先修改 /etc/sudoers:
#Defaults requiretty      #这行前面加注释符号
apache ALL=(ALL) NOPASSWD:ALL
用户    主机=映射为谁的权限 不需要密码:所有操作

web服务以哪个用户运行,就改掉apache。
需要只允许哪几个脚本就改为:
apache ALL=(root) NOPASSWD:/home/a.sh,/home/b.sh           #每个脚本逗号隔开

上面参数解释:
apache这个用户以root权限,不需要密码去运行/home/a.sh和/home/b.sh两个脚本

在php中调用:

<?php

if (!function_exists('exec'))
{
echo 'exec函数被禁用';
}

exec("/usr/bin/sudo /home/a.sh", $result, $status);

?>

一般情况下,exec这个函数,包括shell_exec 、system 等做为危险函数会被禁用,如果禁用了,去php.ini配置文件取消禁用。

评论关闭