为您找到与如何执行linux脚本文件相关的共200个结果:
最近迷上了php脚本,整天满脑子都是php.也用php写了一些脚本,甚至服务来完成一些日常服务器管理的任务,下面学习阿拉小编就给大家介绍下Unix/Linux中如何直接执行PHP脚本文件。
使用Linux系统的服务器都有搭建完整的PHP环境,因此有些用户会用PHP去写一些执行自动化任务的脚本,可是发现每次执行PHP脚本都需要使用php myscript.php的方式,感觉有点麻烦。其实我们是可以直接执行PHP脚本文件的
由于我们的服务器都是使用的 Linux 系统,并且都有搭建完整的 PHP 环境,所以有时候我会用 PHP 写一些执行自动化任务的脚本,但是每次执行这个 PHP 脚本都需要使用 php myscript.php 的方式,
编写你的脚本文件
这里我们编写一个名字为 test_run.php 的文件,文件的内容如下:
Here is some plain text.
Here is the file name:
<?php
echo $argv[0], PHP_EOL;
?>
脚本内容很简单,就是把当前脚本文件的名称打印出来。
然后,我们使用 PHP 命令执行一下这个脚本:
yuanyu@ymac:phpworkspace $ php test_run.php hello
Here is some plain text.
Here is the file name:
test_run.php
yuanyu@ymac:phpworkspace $
给脚本文件增加头信息,并且设置权限
然后,在这个文件的第一行写上 php 命令的全路径,前面是一个 #!:
#!/usr/bin/php
Here is some plain text.
Here is the file name:
<?php
echo $argv[0], PHP_EOL;
?>
然后给这个文件赋予可执行的权限:
yuanyu@ymac:phpworkspace $ chmod u+x ./test_run.php
接下来就可以直接执行这个脚本了:
yuanyu@ymac:phpworkspace $ ./test_run.php
Here is some plain text.
Here is the file name:
./test_run.php
yuanyu@ymac:phpworkspace $
这种方式在 PHP 官方文档中也是有说的,请参考:
http://php.net/manual/en/features.commandline.usage.php
文档中的
“Example #2 Script intended to be run from command line (script.php)”
以上就是Unix/Linux中直接执行PHP脚本文件的操作方法,不熟悉的用户可以参照上面介绍的具体步骤来操作。
看过“ Linux怎么直接执行PHP脚本文件 ”
浏览量:3
下载量:0
时间:
在web开发过程中,经常需要设定一些定期执行的任务,那么linux怎么添加计划任务执行php文件呢?读文网小编分享了linux添加计划任务执行php文件的方法,希望对大家有所帮助。
1.打开linux系统命令行界面。
在命令行界面中输入如下命令:which php,回车。
1.记住上一步的php路径,继续在命令行下输入:crontab -e,回车,按下“i”键进入vi编辑器的编辑模式,在当前模式下输入如下命令:
10,40,50 * * * * /usr/bin/php /opt/lampp/htdocs/wechat/xjtest-web_browser/pcntl_test.php
即:计划任务执行频率+php可执行文件路径+要执行的php文件路径。(文章最后会详细解释命令开始的执行频率)
输入完成后,按下“ESC”键并在当前命令行输入“:”,在“:”后输入“wq”,再回车,出现如下提示,证明计划任务添加成功。
Linux计划任务的执行频率:
命令开始部分的频率,由五个部分组成,分别代表分钟、小时、日、月、星期(0是星期日)。当前频率全部执行时,用“*”表示,所以才会出现这么多“*”。下面的例子,可以帮助大家理解:
下面的计划任务会一直运行
* * * * * [command]
下面的计划任务会在每个小时的0分时运行(就是每小时执行一次)
0 * * * * [command]
下面依旧是一个每小时运行一次的计划任务。不过是在每个小时的一刻钟时运行的(1:15,2:15.。。)
15 * * * * [command]
下面的计划任务每天执行一次,在2:30分
30 2 * * * [command]
下面的计划任务是在每个月2号的午夜执行(比如:2010年2月2日00:00)
0 0 2 * * [command]
下面的计划任务会在每周一的每个小时0分钟时执行一次
0 * * * 1 [command]
下面的会每小时运行3次,在0分,10分,和20分时
0,10,20 * * * * [command]
下面是用除号“/”表示每多少运行一次。本例是每5分钟运行一次
*/5 * * * * [command]
还可以用“-”表示一个范围,如下表示5到10点的每个整点运行一次
0 5-10 * * * [command]
另外还有一个特殊的时间关键字“@reboot”,就是每次重启服务器时运行计划任务
@reboot [command]
看过“linux怎么添加计划任务执行php文件”
浏览量:4
下载量:0
时间:
linux系统怎么添加计划任务执行php文件?PHP不支持多线程,有时候处理问题不是那么爽,读文网小编以php文件为例,讲解linux下的计划任务。
1.打开linux系统命令行界面。
在命令行界面中输入如下命令:which php,回车。
1.记住上一步的php路径,继续在命令行下输入:crontab -e,回车,按下“i”键进入vi编辑器的编辑模式,在当前模式下输入如下命令:
10,40,50 * * * * /usr/bin/php /opt/lampp/htdocs/wechat/xjtest-web_browser/pcntl_test.php
即:计划任务执行频率+php可执行文件路径+要执行的php文件路径。(文章最后会详细解释命令开始的执行频率)
输入完成后,按下“ESC”键并在当前命令行输入“:”,在“:”后输入“wq”,再回车,出现如下提示,证明计划任务添加成功。
Linux计划任务的执行频率:
命令开始部分的频率,由五个部分组成,分别代表分钟、小时、日、月、星期(0是星期日)。当前频率全部执行时,用“*”表示,所以才会出现这么多“*”。下面的例子,可以帮助大家理解:
下面的计划任务会一直运行
* * * * * [command]
下面的计划任务会在每个小时的0分时运行(就是每小时执行一次)
0 * * * * [command]
下面依旧是一个每小时运行一次的计划任务。不过是在每个小时的一刻钟时运行的(1:15,2:15.。。)
15 * * * * [command]
下面的计划任务每天执行一次,在2:30分
30 2 * * * [command]
下面的计划任务是在每个月2号的午夜执行(比如:2010年2月2日00:00)
0 0 2 * * [command]
下面的计划任务会在每周一的每个小时0分钟时执行一次
0 * * * 1 [command]
下面的会每小时运行3次,在0分,10分,和20分时
0,10,20 * * * * [command]
下面是用除号“/”表示每多少运行一次。本例是每5分钟运行一次
*/5 * * * * [command]
还可以用“-”表示一个范围,如下表示5到10点的每个整点运行一次
0 5-10 * * * [command]
另外还有一个特殊的时间关键字“@reboot”,就是每次重启服务器时运行计划任务
@reboot [command]
看过“linux系统怎么添加计划任务执行php文件”
浏览量:2
下载量:0
时间:
可执行文件是指可移植可执行的文件,用于程序的执行,那么Linux下要如何查找可执行文件呢?下面读文网小编就给大家介绍下Linux中查找可执行文件的方法,一起来了解下吧。
linux下查找可执行文件
ls -F|grep “*”
这样就可以了!
ls -F | grep /$是什么意思
ls -F的意思是把文件按照类型归类,并且在末尾加上/ *等符号标识
| 管道输出,把前面命令的结果当做输入传给后面的命令
grep /$的意思是从中挑出以/结尾的行,/就是标识是目录
-F, --classify
append indicator (one of */=》@|) to entries
例子:
代码如下:
[root@SOR_SYS ~]# ls -F
1.sh* CC_manual_0701.rar gzpackage/ man.config script/ tr1.txt
2005.03.01 dead.letter index.html ntpd-deploy.sh* start_tomcatServer229-1.sh tr.txt
anaconda-ks.cfg Desktop/ install.log printc.sh start_tomcatServer229-2.sh usr/
apache-tomcat-6.0.30.zip etc/ install.log.syslog rpmpackage/ stop_tomcatServer229-1.sh zy/
camptocamp-tomcat-0.0.1/ get_date.sh lib/ ruby-1.8.7-p248/ stop_tomcatServer229-2.sh zy.bak/
[root@SOR_SYS ~]#
如果我们搜索以/结尾的,我们可以用以下方法:
ls -F|grep /【转义字符】
ls -F|grep /$
ls -F|grep /
我们来看看ls -F的作用:
-F开关对可执行文件添加一个*号,为目录添加一个/号,为符号链接添加一个@号。
上面就是Linux系统查找可执行文件的方法介绍了,查找的时候可使用ls -F|grep “*”,你是否还在为找不到可执行文件而烦恼呢?不妨试试本文介绍的方法吧。
浏览量:2
下载量:0
时间:
源码如下:
#include
#include
#include
#include
//文件系统信息结构体
struct fileSystem_info{
char fileSystem_format[8];
char fileSystem_total_capacity[11];
char fileSystem_free_capacity[11];
char fileSystem_permissions[3];
};
/*获取文件系统信息*/
int get_fileSystem_info(const char *fileSystem_name, struct fileSystem_info *fi);
/*block to kbyte*/
static unsigned long kscale(unsigned long m_block, unsigned long m_kbyte);
/*convert size to GB MB KB*/
static char *convert_size(float m_size, char *dest);
int main()
{
char buf[1024];
struct fileSystem_info fileSysInfo;
get_fileSystem_info("/",&fileSysInfo);
printf("%s",fileSysInfo.fileSystem_format);
printf("%s",fileSysInfo.fileSystem_free_capacity);
printf("%s",fileSysInfo.fileSystem_total_capacity);
printf("%s",fileSysInfo.fileSystem_permissions);
return 0;
}
/*获取文件系统信息*/
int get_fileSystem_info(const char *fileSystem_name,struct fileSystem_info *fi)
{
struct statfs buf;
float fileSystem_total_size = 0;
float fileSystem_free_size = 0;
if(statfs(fileSystem_name,&buf))
{
fprintf(stderr,"statfs %s",strerror(errno));
return -1;
}
switch(buf.f_type)
{
case 0xEF51:
case 0xEF53:
sprintf(fi->fileSystem_format,"EXT");
break;
case 0x4d44:
sprintf(fi->fileSystem_format,"FAT");
break;
case 0x5346544e:
sprintf(fi->fileSystem_format,"NIFS");
break;
default:
sprintf(fi->fileSystem_format,"unknown");
break;
}
bzero(&fi->fileSystem_total_capacity,sizeof(fi->fileSystem_total_capacity));
bzero(&fi->fileSystem_free_capacity,sizeof(fi->fileSystem_free_capacity));
printf("blocks %ld",buf.f_blocks);
printf("bfree %ld",buf.f_bfree);
printf("bsize %ld",buf.f_bsize);
fileSystem_total_size =
(float)(kscale(buf.f_blocks, buf.f_bsize));
fileSystem_free_size =
(float)(kscale(buf.f_bfree, buf.f_bsize));
printf("total %f",fileSystem_total_size);
printf("free %f",fileSystem_free_size);
convert_size(fileSystem_total_size,fi->fileSystem_total_capacity);
convert_size(fileSystem_free_size,fi->fileSystem_free_capacity);
bzero(fi->fileSystem_permissions,sizeof(fi->fileSystem_permissions));
sprintf(fi->fileSystem_permissions,"rw");
return 0;
}
/*block to kbyte*/
static unsigned long kscale(unsigned long m_block, unsigned long m_kbyte)
{
return ((unsigned long long) m_block * m_kbyte + 1024 / 2 ) /1024;
}
/*convert size to GB MB KB*/
static char *convert_size(float m_size, char *dest)
{
if((((m_size / 1024.0) / 1024.0)) >= 1.0)
{
sprintf(dest,"%0.2fGB",(m_size/1024.0)/1024.0);
}
else if((m_size / 1024.0) >= 1.0)
{
sprintf(dest,"%0.2fMB",(m_size/1024));
}
else
{
sprintf(dest,"%0.2fKB",m_size);
}
return dest;
}
总结:
1、关于 struct statfs 结构体信息参考:http://blog.csdn.net/u011641885/article/details/46919027
2、对于fileSystem_total_size 使用float 类型,是为了精确度更高。buysbox 中的 fdisk 源码使用的是整型相除,约为4舍五入。
3、kscale 函数中 使用 unsigned long long 类型 是因为 m_block 与 m_byte 原本是long 型,相乘的结果超出了 long 类型的可以表示数据位。
浏览量:2
下载量:0
时间:
对于如何在Windows系统上面怎么进行系统备份相信大家都知道,那么大家知道Linux通过shell脚本怎么备份系统吗?读文网小编分享了Linux通过shell脚本备份系统的方法,希望对大家有所帮助。
脚本如下:
#!/bin/sh
#Automatic Backup Linux System Files
#Author wugk 2013-11-22
#Define Variable
SOURCE_DIR=(
$*
)
TARGET_DIR=/data/backup/
YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
WEEK=`date +%u`
FILES=system_backup.tgz
CODE=$?
if
[ -z “$*” ];then
echo -e “Please Enter Your Backup Files or Directories--------------------------------------------Example $0 /boot /etc 。。。。。。”
exit
fi
#Determine Whether the Target Directory Exists
if
[ ! -d $TARGET_DIR/$YEAR/$MONTH/$DAY ];then
mkdir -p $TARGET_DIR/$YEAR/$MONTH/$DAY
echo “This $TARGET_DIR is Created Successfully !”
fi
#EXEC Full_Backup Function Command
Full_Backup()
{
if
[ “$WEEK” -eq “7” ];then
rm -rf $TARGET_DIR/snapshot
cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf $FILES `echo ${SOURCE_DIR[@]}`
[ “$CODE” == “0” ]&&echo -e “--------------------------------------------These Full_Backup System Files Backup Successfully !”
fi
}
#Perform incremental BACKUP Function Command
Add_Backup()
{
cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;
if
[ -f $TARGET_DIR/$YEAR/$MONTH/$DAY/$FILES ];then
read -p “These $FILES Already Exists, overwrite confirmation yes or no ? : ” SURE
if [ $SURE == “no” -o $SURE == “n” ];then
sleep 1 ;exit 0
fi
#Add_Backup Files System
if
[ $WEEK -ne “7” ];then
cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf $$_$FILES `echo ${SOURCE_DIR[@]}`
[ “$CODE” == “0” ]&&echo -e “-----------------------------------------These Add_Backup System Files Backup Successfully !”
fi
else
if
[ $WEEK -ne “7” ];then
cd $TARGET_DIR/$YEAR/$MONTH/$DAY ;tar -g $TARGET_DIR/snapshot -czvf $FILES `echo ${SOURCE_DIR[@]}`
[ “$CODE” == “0” ]&&echo -e “-------------------------------------------These Add_Backup System Files Backup Successfully !”
fi
fi
}
Full_Backup;Add_Backup
上面就是Linux使用shell脚本备份系统的方法介绍了,通过上面的脚本就能自动备份系统,但脚本可能还存在不足的地方,可自行改良优化。
看过“Linux通过shell脚本怎么备份系统”
浏览量:3
下载量:0
时间:
突然电脑的所有可执行程序突然都无法运行了,那么win7系统无法打开可执行文件怎么办呢?接下来大家跟着读文网小编一起来了解一下win7系统无法打开可执行文件的解决方法吧。
1、在桌面上按组合键win+R打开运行窗口,接着输入“notepad”,回车确认。打开记事本工具后,输入以下内容:
Windows registry editor version 5.00
[hkey-classes-root.exe]
@=“exefile”
“content type”=”application/x-msdownload”
[hkey-classes-root.exepersistenthandler]
@=”{0910f2470-bae0-11cd-b579-010002b30bfeb}”
如下图所示:
2、然后按Ctrl+A打开另存为窗口。在打开的“另存为”对话框中设置保存路径,然后在“文件名”文本框中输入文件名“hh.reg”,并点击“保存”,如下图所示:
3、接着双击刚刚创建的文件,此时会弹出一个注册表编辑器警告框,我们只需点击“是”即可,如下图所示:
完成上述操作后,当我们再次运行可执行文件的时候就不会弹出提示了。
看过“win7系统无法打开可执行文件怎么办”
浏览量:4
下载量:0
时间:
Win7系统用户在运行可执行文件的时候,有时会弹出“文件没有与之关联的程序来执行”的提示,导致程序运行失败,碰到这种问题,我们该怎么办呢?下面读文网小编就来跟大家分享win7无法打开可执行文件的解决方案。
1、打开任意窗口(非IE窗口),然后依次点击上方的“工具---文件夹选项----文件类型”;
2、然后点击新建,在“文件扩展名”中填入“EXE”,之后点击高级,在下拉菜单中选“应用程序”,最后点击确定退出即可。
浏览量:4
下载量:0
时间:
一个中等水平的Linux用户一定少不了经常执行.sh文件,那么Linux怎么运行.sh文件呢?今天读文网小编与大家分享下Linux运行.sh文件的具体操作步骤,有需要的朋友不妨了解下。
1、cd到.sh文件所在目录
比如以hello.sh文件为例,如下图
2、给.sh文件添加x执行权限
比如以hello.sh文件为例,chmod u+x hello.sh,如下图
3、./执行.sh文件
比如以hello.sh文件为例,./hello.sh 即可执行hello.sh文件,如下图
4、sh 执行.sh文件
以hello.sh文件为例,sh hello.sh即可执行hello.sh文件,如下图
注意事项:用“./”加文件名.sh执行时,必须给.sh文件加x执行权限
看过“Linux怎么运行.sh文件”
浏览量:3
下载量:0
时间:
在linux中查看与修改文件权限我们都必须使用命令来操作,不能像windows一样点几下就好了,那么linux系统怎么查看及修改文件读写权限设置?接下来大家跟着读文网小编一起来了解一下linux系统查看及修改文件读写权限设置的解决方法吧。
查看文件权限的语句:
在终端输入:
ls -l xxx.xxx (xxx.xxx是文件名)
那么就会出现相类似的信息,主要都是这些:
-rw-rw-r--
一共有10位数
其中: 最前面那个 - 代表的是类型
中间那三个 rw- 代表的是所有者(user)
然后那三个 rw- 代表的是组群(group)
最后那三个 r-- 代表的是其他人(other)
然后我再解释一下后面那9位数:
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
- 表示相应的权限还没有被授予
现在该说说修改文件权限了
在终端输入:
chmod o+w xxx.xxx
表示给其他人授予写xxx.xxx这个文件的权限
chmod go-rw xxx.xxx
表示删除xxx.xxx中组群和其他人的读和写的权限
其中:
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
其中:rwx也可以用数字来代替
r ------------4
w -----------2
x ------------1
- ------------0
行动:
+ 表示添加权限
- 表示删除权限
= 表示使之成为唯一的权限
当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
看过“linux系统怎么查看及修改文件读写权限设置”
浏览量:2
下载量:0
时间:
每个人都有读写和执行的权限 Linux文件和目录访问权限设置使用chmod和数字改变文件或目录的访问权限文件和目录的权限表示,那么大家知道怎么查看及修改Linux系统文件读写权限吗?接下来大家跟着读文网小编一起来了解一下查看及修改Linux系统文件读写权限的解决方法吧。
查看权限命令
查看目录的相关权限可以采用命令ls -lD,或者直接用ls -la
如
ls -l www.jb51.net https://这里表示查看www.jb51.net目录
修改权限命令
chmod 777 文件名
1.chmod 577 /home/stuser -R
2.umask -p 0200
3.chown XXXX YYYY (XXXX 为用户名 YYYY为文件名)
权限列表
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
查看文件权限的语句:
在终端输入:
ls -l xxx.xxx (xxx.xxx是文件名)
那么就会出现相类似的信息,主要都是这些:
-rw-rw-r--
一共有10位数
其中: 最前面那个 - 代表的是类型
中间那三个 rw- 代表的是所有者(user)
然后那三个 rw- 代表的是组群(group)
最后那三个 r-- 代表的是其他人(other)
然后我再解释一下后面那9位数:
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
- 表示相应的权限还没有被授予
现在该说说修改文件权限了
在终端输入:
chmod o+w xxx.xxx
表示给其他人授予写xxx.xxx这个文件的权限
chmod go-rw xxx.xxx
表示删除xxx.xxx中组群和其他人的读和写的权限
其中:
u 代表所有者(user)
g 代表所有者所在的组群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被读(read)
w 表示文件可以被写(write)
x 表示文件可以被执行(如果它是程序的话)
其中:rwx也可以用数字来代替
r ------------4
w -----------2
x ------------1
- ------------0
行动:
+ 表示添加权限
- 表示删除权限
= 表示使之成为唯一的权限
当大家都明白了上面的东西之后,那么我们常见的以下的一些权限就很容易都明白了:
-rw------- (600) 只有所有者才有读和写的权限
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------ (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限
看过“怎么查看及修改Linux系统文件读写权限”
浏览量:2
下载量:0
时间:
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。那么Linux怎么使用JFS文件系统呢?今天读文网小编与大家分享下Linux使用JFS文件系统的具体操作步骤,有需要的朋友不妨了解下。
JFS是IBM公司为linux系统开发的一个日志文件系统。从IBM的实力及它对Linux的态度来看,JFS应该是未来日志文件系统中最具实力的一个文件系统。
JFS提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的。JFS 能够在几秒或几 分钟内就把文件系统恢复到一致状态。JFS能够保证数据在任何意外宕机的情况下,不会造成磁盘数据的丢失与损坏。
一、JFS文件系统特点
1.存储空间更大
JFS 支持的最小文件系统是 16M 字节。最大文件系统的大小为 512 万亿字节(TB)。JFS 是真正意义上的 64 位的文件系统。所有 JFS 文件系统结构化字段都是 64 位大小。
2.动态磁盘 inode 分配
JFS 按需为磁盘 inode 动态地分配空间,释放不再需要的空间。这种方式避开了在文件系统创建期间,为磁盘 inode 保留固定数量空间的传统方法。用户不需要考虑文件系统包含的文件和目录最大数目。
3.基于盘区的寻址结构
JFS 使用基于盘区的寻址结构,JFS 分配尝试通过分配最小数量的盘区策略,而使每个盘区尽可能大。这有利于大的 I/O 传送,磁盘读写性能所有提高。
4.块尺寸可变
JFS 支持 512、1024、2048 和 4096 字节的块尺寸,允许用户根据应用环境优化空间利用率。较小的块尺寸减少有利于内部存储碎片的数量,提高空间利用率。系统缺省块尺寸为 4096 字节。
二、使用JFS文件系统
1.编译内核以支持JFS文件系统
首先下载最新的2.4.x 核心,然后下载JFS系统软件包,名称为:jfs-x.y.z-patch.tar.gz。 将下载文件存放在/usr/src目录中。
在/usr/src/上当目录下解开jfs的软件包
# tar –zxvf jfs-2.4-1.0.4.tar.gz
# tar –zxvf jfs-2.4-1.0.4-patch.tar.gz
得到四个文件:
jfs-2.4.common-v1.0.4-patch
jfs-2.4.7-v1.0.4-patch
jfs-2.4.5-v1.0.4-patch
jfs-2.4.0-v1.0.4-patch
其中,jfs-2.4.common-v1.0.4-patch文件用于所有的2.4核心,jfs-2.4.0-v1.0.4-patch用于2.4.0-2.4.2。jfs-2.4.5-v1.0.4-patch可用于核心2.4.5及2.4.6。
注意仔细阅读README文件,不要用错了patch文件
接着是为核心打补丁:
# patch –p1 < jfs-2.4.5-v1.0.4-patch
打补丁工作完成。
最后运行
#make menuconfig
将新的文件系统加入了核心编译配置文件中,要进行以下内核配置:
使用make menuconfig 在菜单"Code maturity level options"中,选择"Prompt for development and/or incomplete code/drivers."选项。然后,进入文件系统菜单"File systems",选择"JFS filesystem support."选项。配置核心,使核心支持JFS文件系统。配置核心的其它选项。
<*> JFS filesystem support
##将JFS文件系统的支持编译入内核,也可以将其编译成模块加载方式,见以下选择:
JFS filesystem support
笔者建议将JFS文件系统支持直接编译进内核,这有利于提高系统性能。
然后编译核心:
#make dep
#make clean
#make bzImage
#make modules
#make modules_install
#cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.5-jfs
最后,编辑 /etc/lilo.conf 文件,加入新内核条目,以便使用新的内核引导系统。如下所示,在 lilo.conf文件中加入以下几行内容:
image=/boot/vmlinuz-2.4.5-jfs
label=jfs
read-only
root=/dev/hda5
然后运行lilo,使更改生效。
#lilo
三、创建JFS文件系统
1.查看系统对JFS文件系统的支持
如果新的内核正确启动,这说明核心已支持JFS文件系统了。查看系统进程,可以看到以下进程:
#lsmod
7 ? SW 0:00 [jfsIO]
8 ? SW 0:00 [jfsCommit]
9 ? SW 0:00 [jfsSync]
如果你看到了以上这几个进程,这表明系统核心已支持JFS文件系统。
另外,在/proc/fs/jfs 目录下应该还有三个文件:
jfsFYI
logmgr
TxAnchor
2.下载编译JFS文件系统工具
为了使用JFS文件系统,我们还需要创建文件系统的工具,到IBM的JFS网站下载相应工具jfsutils-1.0.7.tar.gz软件包。
编译安装过程如下:
#tar –zxvf jfsutils-1.0.7.tar.gz
#cd jfsutils-1.0.7
#./configure
#make
#make install
安装完成后,在/usr/sbin中就多出一个 可执行文件mkfs.jfs,我们就用它将分区格式化成jfs文件系统。
3.创建JFS文件系统
以下开始创建一个JFS文件系统, 将hda6分区格式化成JFS文件系统,以下为格式化时显示的内容:
#mkfs -t jfs /dev/hda6
mkfs.jfs development version: $Name: v0_3_1 $
Warning! All data on device /dev/hda6 will be lost!
Continue? (Y/N) y
Format completed successfully.
5120608 kilobytes total disk space.
运行完成后,JFS文件系统已经在hda6分区创建完成了。
4.加载JFS文件系统
首先,创建一个目录jfs,以便将JFS文件系统mount到其上:
#mkdir jfs
将新的分区mount到jfs目录下:
#mount –t jfs /dev/hda6 /jfs
这样,新的文件系统就加载到/jfs目录下了。现在可以使用新的文件系统了。
四、使用JFS文件系统
1.普通分区使用JFS文件系统
Linux内核支持了JFS文件系统后,可以将磁盘所有分区均格式化为JFS文件系统。通常情况下,建议/usr,/usr/sbin等分区采用非日志文件系统,而在那些对读写要求频繁的分区上使用JFS文件系统。这有利于提高系统性能。
2.主引导区使用JFS文件系统
主分区为linux的启动分区,其中存放了系统启动所需的基本文件。以下开始将JFS文件系统用于主分区,首先备份主分区上的所有常用文件目录:
#cd /
#cp -a bin etc lib boot dev home usr var [...] /jfs
#mkdir /jfs/proc
在使用JFS文件系统启动之前,还应该更改/etc/fstab文件,将相应的分区用作根分区。如下所示:原来的根分区为:
LABEL=/ / ext2 defaults 1 1
应该更改为:
/dev/hda6 / jfs defaults 1 1
然后,编译/etc/lilo.conf文件,将主引导分区更改为/dev/hda6。置label为jfs,将缺省的启动设置为jfs。
如下所示:
default=jfs
...
image=/boot/vmlinuz-2.4.0-jfs
label=jfs
read-only
root=/dev/hda6
然后,运行lilo,完成。
最后,reboot 系统,启动之后,你就得到一个纯jfs文件系统的linux环境了,剩下的事情就是将原来的主分区重新格式化成 jfs,然后再将其mount到主分区的某个目录下就行了。
看过“Linux怎么使用JFS文件系统”
浏览量:5
下载量:0
时间:
在Win7 系统中杀毒扫描后,欲打开可执行的exe文件程序时,却弹出了“选择打开方式”错误提示,让很多用户举手无措,Win7系统打不开可执行的exe文件程序怎么办?下面读文网小编给大家介绍此问题的解决方法。
1、在桌面空白处鼠标右击选择“新建-文本文档”,然后将下面的代码复制粘贴进去;如图1所示
regedit4
[hkey_classes_root/exefile/shell/Open/command]
@=/%1/ %*
2、然后将记事本保存为.reg格式的,之后双击导入注册表即可。
看过“Win7系统打不开可执行的exe文件程序怎么办”
浏览量:2
下载量:0
时间:
用一个很简单的命令就可以实现linux系统之间互传文件功能。这个命令就是scp, 它可以在 2个 linux 主机间复制文件,那么怎么利用scp命令来实现linux系统之间互传文件呢?今天读文网小编与大家分享下怎么利用scp命令来实现linux系统之间互传文件的解决方法,有兴趣的朋友不妨了解下。
SCP(secure copy)是Linux下一个跨主机拷贝工具,使用方法很简单
近来要做linux主机的P2V操作(物理主机转虚拟机)不知道是我操作有问题还是安装的Linux有问题还是Vmware的这个Convert有问题,总之就是不让我完成这个转换,无奈之下,只好自己动手进行部署咯,可是真实主机上有大约40G的数据要向虚拟机进行迁移,Google了一下,发现了基于SSH的一个很好很强大的命令SCP.
SCP(secure copy)是Linux下一个跨主机拷贝工具,使用方法很简单,而且传输的数据也是经过SSH加密的数据,很安全,而且直连互传速度也相当快,语法也很简洁,如现在SSH上A机,要将B机/etc下面的kaisir.tar.gz文件拷贝到A机的/home下面,则仅仅需要输入:
scp root@A:/etc/kaisir.tar.gz /home
这样就能快速安全的完成复制了,但是也有一点缺陷,就是没有办法完成像FTP的FXP那样的不需用户参与的对传操作
看过“怎么利用scp命令来实现linux系统之间互传文件”
浏览量:2
下载量:0
时间:
Linux有一个rm命令(rmdir也可以在rm里现实),不过只是简单删除,这个srm命令全称是secrue rm,是安全移出的意思,那么Linux系统怎么彻底删除文件呢?今天读文网小编与大家分享下Linux系统怎么彻底删除文件的解决方法,有兴趣的朋友不妨了解下。
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。
直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字
删除目录、文件 rm(remove)
功能说明:删除文件或目录。
语法:rm [-dfirv][--help][--version][文件或目录。。.]
补充说明:执行rm指令可删除文件或目录,如欲删除目录必须加上参数”-r”,否则预设仅会删除文件。
参数:
-d或–directory 直接把欲删除的目录的硬连接数据删成0,删除该目录。
-f或–force 强制删除文件或目录。
-i或–interactive 删除既有文件或目录之前先询问用户。
-r或-R或–recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或–verbose 显示指令执行过程。
1 删除文件夹
de》rm -rf fileNamede》
-删除文件夹实例:
rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的
2 删除文件
de》rm -f fileNamede》
使用 rm -rf 的时候一定要格外小心,linux没有回收站的
删除指定文件之外的其他文件
一、Linux下删除文件和文件夹常用命令如下:
删除文件: rm file
删除文件夹: rm -rf dir
需要注意的是, rmdir 只能够删除 空文件夹。
二、删除制定文件(夹)之外的所有文件呢?
1、方法1,比较麻烦的做法是:
复制需要保留的文件到其他文件夹,然后将该目录删除, 然后将需要保留的移动 回来。
mv keep 。。/ #保留文件(夹) keep
rm -rf * #删除当前文件夹里的所有文件
mv 。。/keep 。/ #将原来的东西移动回来
2、方法2,需要在当前文件夹中进行:
rm -rf !(keep) #删除keep文件之外的所有文件
rm -rf !(keep1 | keep2) #删除keep1和keep2文件之外的所有文件
Linux中彻底删除文件
shred彻底删除文件的方法:
$ shred -u file
shred会用一些随机内容覆盖文件所在的节点和数据块,并删除文件(-u参数)。
如果想清除的更彻底一点可以加-z 参数,意思是先用随机数据填充,最后再用0填充。
$ shred -u -z file
另外shred还可以清除整个分区或磁盘,比如想彻底清除/dev/sdb1分区的内容可以这样:
$ shred /dev/sdb1 (注意不要加-u参数)
shred的详细参数:
-f, --force 更改权限允许写入(如有必要)
-n, --iterations=N 重写N次,默认为3次
--random-source=FILE 从指定文件读取数据
-s, --size=N 将文件粉碎为固定大小 (可使用后缀如K、M、C等)
-u, --remove 重写后截短并移除文件
-v, --verbose 显示进度
-z, --zero - add 用0覆盖数据
–help 显示帮助
–version 显示版本信息
上面就是Linux下彻底删除文件的方法介绍了,需要特别注意的是,因为Linux没有回收站,在使用彻底删除的时候要特别小心,rm -rf命令不可随意乱用。
看过“Linux系统怎么彻底删除文件”
浏览量:2
下载量:0
时间:
Scp在主机间复制文件。他使用 ssh(1)作为数据传输。而且用同样认证和安全性。那么linux scp怎么远程拷贝文件呢?今天读文网小编与大家分享下linux scp远程拷贝文的解决方法,有兴趣的朋友不妨了解下。
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录
scp命令的用处:
scp在网络上不同的主机之间复制文件,它使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远程拷贝文件。
scp命令基本格式:
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
scp命令的参数说明:
-1
强制scp命令使用协议ssh1
-2
强制scp命令使用协议ssh2
-4
强制scp命令只使用IPv4寻址
-6
强制scp命令只使用IPv6寻址
-B
使用批处理模式(传输过程中不询问传输口令或短语)
-C
允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限。
-q
不显示传输进度条。
-r
递归复制整个目录。
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher
以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config
指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file
从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit
限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option
如果习惯于使用ssh_config(5)中的参数传递方式,
-P port 注意是大写的P, port是指定数据传输用到的端口号
-S program
指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
scp命令的实际应用
1>从本地服务器复制到远程服务器
(1) 复制文件:
命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名
实例:
scp /home/linux/soft/scp.zip root@www.mydomain.com:/home/linux/others/soft
scp /home/linux/soft/scp.zip root@www.mydomain.com:/home/linux/others/soft/scp2.zip
scp /home/linux/soft/scp.zip www.mydomain.com:/home/linux/others/soft
scp /home/linux/soft/scp.zip www.mydomain.com:/home/linux/others/soft/scp2.zip
(2) 复制目录:
命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要输入用户密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
例子:
scp -r /home/linux/soft/ root@www.mydomain.com:/home/linux/others/
scp -r /home/linux/soft/ www.mydomain.com:/home/linux/others/
上面 命令 将 本地 soft 目录 复制 到 远程 others 目录下,即复制后远程服务器上会有/home/linux/others/soft/ 目录
2>从远程服务器复制到本地服务器
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。
例如:
scp root@www.mydomain.com:/home/linux/soft/scp.zip /home/linux/others/scp.zip
scp www.mydomain.com:/home/linux/soft/ -r /home/linux/others/
linux系统下scp命令中很多参数都和 ssh1 有关 , 还需要看到更原汁原味的参数信息,可以运行man scp 看到更细致的英文说明.
看过“linux scp怎么远程拷贝文件”
浏览量:2
下载量:0
时间:
linux上操作文件的常用命令,最近工作中需要使用liux操作系统,处理一些文件。所有在这里整理一下liux上对文件操作的一些常用命令,便于以后工作。下面大家跟着读文网小编一起来了解一下吧。
ls
代码如下:
$ ls #查看当前目录下文件
conf lnmp_install.sh README vhost_ngx_pagespeed.sh
init.sh ngx_pagespeed.sh source vhost.sh
代码如下:
$ ls conf #查看conf目录下文件
index.html nginx.conf pureftpd-mysql.conf tz.php
init.d.nginx pure-ftpd.conf script.mysql
代码如下:
$ ls -a #显示所有文件(包含以点(.)开头的隐藏文件,)
. conf lnmp_install.sh README vhost_ngx_pagespeed.sh
.. init.sh ngx_pagespeed.sh source vhost.sh
代码如下:
$ ls -l #以长格式显示文件的详细信息,可以查看文件权限,所属用户,日期等
total 60
drwxr-xr-x 2 root root 4096 Jul 25 18:14 conf
-rwxr-xr-x 1 root root 5720 Jul 25 18:14 init.sh
-rwxr-xr-x 1 root root 21011 Jul 25 18:14 lnmp_install.sh
-rwxr-xr-x 1 root root 1983 Jul 25 18:14 ngx_pagespeed.sh
-rw-r--r-- 1 root root 392 Jul 25 18:14 README
drwxr-xr-x 15 root root 4096 Jul 27 13:58 source
-rwxr-xr-x 1 root root 4865 Jul 26 21:58 vhost_ngx_pagespeed.sh
-rwxr-xr-x 1 root root 3774 Jul 25 18:14 vhost.sh
pwd #打印当前目录
代码如下:
# pwd
/root/lnmp
cd
代码如下:
# cd ../ #进入上层目录
# cd ../../ #进入上上层目录
# cd ~ #进入当前用户的家目录
# cd /root/lnmp/conf #进入/root/lnmp/conf目录
mkdir
代码如下:
$ mkdir linuxeye #创建一个linuxeye目录
$ mkdir -p backup/sql #递归创建目录(如果目录不存在,则创建)
rm
代码如下:
$ rm init.sh #删除init.sh文件(不加-r参数不能删除目录)
$ rm -r conf #递归删除文件或目录(可以删除文件夹,系统会询问你是否删除,输入y表示确认,然后回车即可)
$ rm -rf backup #不会询问(-f参数慎用),直接递归删除文件或目录
mv
代码如下:
$ mv linux linuxeye #将linux文件或者目录重命名为linuxeye
$ mv vhost.sh conf/ #将vhost.sh移动到conf目录下
cp
代码如下:
$ cp linux linuxeye #将linux文件复制一份命名为linuxeye(如果存在linuxeye目录,则将linux文件复制到linuxeye目录下,文件名不变为linux)
$ cp -r linuxeye/ conf/ #将linuxeye目录(包含里面文件)复制到conf目录下
wget
代码如下:
$ wget //blog.linuxeye.com/wp-contenthttp://uploads.quduwen.com/lnmp.tar.gz #下载文件,可加参数-c断点续传;-T 设置超时时间后面跟秒
cat && grep
代码如下:
$ cat vhost.sh | grep linuxeye #显示vhost.sh 过滤包含linuxeye字符的行
awk
取一个公网ip地址
代码如下:
ifconfig | grep 'inet addr:' | cut -d: -f2 | grep -v ^10. | grep -v ^192.168 | grep -v ^172. | grep -v ^127. | awk '{print $1}' | awk '{print;exit}'
系统资源管理
代码如下:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda 24G 13G 9.9G 55% /
tmpfs 501M 108K 501M 1% /dev/shm
top #动态查看进程消耗资源(cpu、内存)
top -H #查看各个线程资源消耗情况
free -m # 查看内存、swap使用情况,top也可以看
压缩与解压缩
tar
代码如下:
$ tar czf linuxeye.tar.gz ./linuxeye #tar打包压缩
$ tar xzf linuxeye.tar.gz #解压
zip & unzip #加-q参数不会显示压缩过程
$ zip -r linuxeye.zip ./linuxeye #zip压缩
$ unzip -q linuxeye.zip #安静的zip解压
看过“ linux上操作文件的常用命令 ”
浏览量:3
下载量:0
时间: