A. centos 6.5怎么执行.pl文件
crontab命令常见于Unix和linux的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行。在Linux系统中,Linux任务调度的工作主要分为以下两类:1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置一、/etc/crontab、/etc/cron.deny、/etc/cron.allow文件介绍系统调度的任务一般存放在/etc/crontab这个文件下,里面存放了一些系统运行的调度程序,通过命令我们可以看一下里面的内容:[[email protected]~]#cat/etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/#Fordetailsseeman4crontabs#Exampleofjobdefinition:#.—————-minute(0-59)#|.————-hour(0-23)#||.———-dayofmonth(1-31)#|||.——-month(1-12)ORjan,feb,mar,apr#||||.—-dayofweek(0-6)(Sunday=0or7)ORsun,mon,tue,wed,thu,fri,sat#|||||#*****user-namecommandtobeexecuted这些任务都会是系统在运行起来后自动进行调度的。同时在/etc目录下还存放了/etc/cron.deny和/etc/cron.allow文件/etc/cron.deny表示不能使用crontab命令的用户/etc/cron.allow表示能使用crontab的用户。如果两个文件同时存在,那么/etc/cron.allow优先。如果两个文件都不存在,那么只有root用户可以安排作业。二、.crontab命令语法及其各个参数含义crontab命令的语法为:crontab[-e[UserName]|-l[UserName]|-r[UserName]|-v[UserName]|File]注意:crontab是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-uuser是指设定指定user的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。如果不使用-uuser的话,就是表示设定自己的时程表。各个参数说明:-e[UserName]:执行文字编辑器来设定时程表,内定的文字编辑器是vi-r[UserName]:删除目前的时程表-l[UserName]:列出目前的时程表-v[UserName]:列出用户cron作业的状态三、crontab命令的格式我们如果要创建自己的一个任务调度,可以使用crontab-e这个命令,如:[[email protected]~]#crontab-e此时会进入到vi编辑界面,来编写我们要调度的任务,crontab调度命令的格式如下:*****commandpath//前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,即命令字段,其中包括了crontab调度执行的命令。各个字段之间用spaces和tabs分割。调度命令的规则:字段名称说明取值范围分钟每小时的第几分钟执行0-59小时每日的第几个小时执行0-23日期每月的第几天执行1-31月历每年的第几月执行1-12星期每周的第几天执行0-6命令名称欲执行的命令及参数crontab命令中的一些常用特殊符号:符号说明*表示任何时刻,表示分割-表示一个段,如第二段里:1-5,就表示1到5点/n表示每个n的单位执行一次,如第二段里,*/1,就表示每隔1个小时执行一次命令。也可以写成1-23/1.下面给出一些crontab命令的实例:008,12,16***/data/app/scripts/monitor/df.sh302***/data/app/scripts/hotbackup/hot_database_backup.sh108,12,16***/data/app/scripts/monitor/check_ind_unusable.sh108,12,16***/data/app/scripts/monitor/check_maxfilesize.sh108,12,16***/data/app/scripts/monitor/check_objectsize.sh4321***每天的21:43执行1505***每天的05:15执行017***每天的17:00执行017**1每周一的17:00执行0,1017**0,2,3每周日,周二,周三的17:00和17:10执行0-10171**毎月1日从17:00到7:10毎隔1分钟执行001,15*1毎月1日和15日和一日的0:00执行4241**毎月1日的4:42分执行021**1-6周一到周六21:00执行0,10,20,30,40,50****每隔10分执行*/10****每隔10分执行*1***从1:0到1:59每隔1分钟执行01***1:00执行0*/1***毎时0分每隔1小时执行0****毎时0分每隔1小时执行28-20/3***8:02,11:02,14:02,17:02,20:02执行3051,15**1日和15日的5:30执行四、创建我们自己的crontab命令①实例一:如果我希望每隔一分钟,就将系统的时间写入到/home目录下的date1.txt文件里面,则输入下面的命令[[email protected]o~]#crontab-e在crontab命令编辑界面输入crontab命令:*****date>>/home/date1.txt(前面五个*****表示时间是每隔一分钟date命令就是得到当前的系统时间,>>命令表示将结果累加到文件后面>命令则表示将结果覆盖文件)保存以后如果出现crontab:installingnewcrontab这句话,则表示该调度命令已经成功我们可以到/home目录下看是否已经存在了该文本文件,并查看里面的信息:[[email protected]]#catdate1.txtSatApr616:15:09CST2013SatApr616:16:02CST2013SatApr616:17:01CST2013此时我们发现,我们刚才编写的那个crontab命令已经正常在运行了,只要没有执行终止命令或者系统关机,这个命令就会一直执行下去②实例二:如果我们需要同时完成两件命令,即每隔一分钟就将系统时间写入到/home目录下的date1.txt文件里面,同时再每隔一分钟将该date1.txt文件拷贝到/目录下生成一个date2.txt的文件。这时我们通常该怎么做呢?方法有两种:a)最简单最直接的方法(不推荐):直接输入crontab-e命令,在后面再追加一个命令即可,如:[[email protected]~]#crontab-e*****date>>/home/date1.txt*****cp/home/date1.txt/date2.txt最后我们退出保存即可,此时我们可以发现/目录下已经有了date2.txt这个文件了,打开后可以看到其内容和date1.txt一样:[[email protected]/]#catdate2.txtSatApr616:15:09CST2013SatApr616:16:02CST2013SatApr616:17:01CST2013SatApr616:18:01CST2013SatApr616:19:01CST2013SatApr616:20:01CST2013SatApr616:21:01CST2013SatApr616:22:01CST2013SatApr616:23:02CST2013虽然这种方法比较简单,但是并不推荐这种,因为如果命令一多的话,并且如果我需要不同用户执行不同的命令时,这种方法在维护起来不方便,所以这里介绍另外一种方法。b)首先编写一个可执行的sh文件,然后将我们要执行的任务写着sh文件里面,最后通过crontab来执行我们的sh文件即可(推荐)首先我们在/目录下编写一个task.sh的文件,里面的内容就是我们刚要执行的两条命令:[[email protected]/]#vitask.shtask.sh里面的命令date>>/home/date1.txtcp/home/date1.txt/date3.txt此时我们的task.sh还不是可执行文件,通过ls-l命令我们可以看到-rw-r–r–.1rootroot544月616:27task.sh//tash.sh是不可执行的,我们要修改其权限所以我们需要通过chmod命令来修改task.sh的权限:[[email protected]/]#chmod744task.sh此时再查看,就发现task.sh已经是可执行文件了:-rwxr–r–.1rootroot544月616:27task.sh然后我们输入crontab-e命令,将之前的两条命令删除掉,或者在前面加#号注释掉:#*****date>>/home/date1.txt#*****cp/home/date1.txt/date2.txt*****/task.sh这时我们发现根目录下面已经存在了date3.txt文件了,打开就可以发现里面的内容为:[[email protected]/]#catdate3.txtSatApr616:15:09CST2013SatApr616:16:02CST2013SatApr616:17:01CST2013SatApr616:18:01CST2013SatApr616:19:01CST2013SatApr616:20:01CST2013SatApr616:21:01CST2013SatApr616:22:01CST2013SatApr616:23:02CST2013SatApr616:24:01CST2013SatApr616:25:01CST2013SatApr616:26:01CST2013SatApr616:27:01CST2013SatApr616:28:01CST2013SatApr616:29:01CST2013SatApr616:31:02CST2013SatApr616:32:01CST2013五、crontab的其他一些命令如果我们需要列出自己创建的任务调度都有哪些命令,可以使用crontab-l命令来查看[[email protected]/]#crontab-l#*****date>>/home/date1.txt#*****cp/home/date1.txt/date2.txt*****/task.sh如果我们需要终止自己刚创建的任务调度,则使用crontab-r命令即可[[email protected]/]#crontab-r此时我们可以发现,crontab里面的任务都已经没有了六、cron服务的启动我们可以通过chkconfig–list|grepcron命令来查看cron服务的启动情况:[[email protected]]#chkconfig–list|grepcroncrond0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭我们可以看到,系统启动级别如果是1-4,cron服务都会开机自动启动的,我们可以通过如下命令来设置该服务的启动项:/sbin/servicecrondstart/sbin/servicecrondstop/sbin/servicecrondrestart/sbin/servicecrondreload以上1-4行分别为启动、停止、重启服务和重新加载配置。要把cron设为在开机的时候自动启动,在/etc/rc.d/rc.local脚本中加入/sbin/servicecrondstart即可。本篇随笔主要记录了Linux系统中的crontab命令的常见用法,在后续学习中将继续记录自己的学习心得。
B. centos7下利用pyinstaller打包python程序,生成的执行文件运行报错,如何解决
首先,那堆apixxx.dll的Warning一般不影响执行,可以不用管。我曾经遇到过类似的pyi_rth_qt5plugins错误,后来发现PyInstaller似乎是从系统路径查找Qt版本的,把我定义的%QTDIR%下面的dll复制过来了,这个Qt版本又和PyQt的版本不同,所以就冲突了。从系统路径去掉Qt以后再生成一切正常。总之:如果系统中同时安装了Qt和PyQt,或者有好几个Qt/PyQt版本,一定要小心避免引起混乱。
C. centos里安装好的的jdk,怎么打开运行
CentOS系统中,我们遇到很多的问题,不知道你是否也越到过这样的问题。在使用虽然CentOS系统提供yum,但对JDK安装一点作用都没有。因为我要用到JDK1.6,所以只能手动自己的安装了。查看Linux CentOS系统自带的JDK是否已安装下载JDK,java -version,去sun(ORACLE)注册下载一个。CentOS系统安装JDK 从SUN下载jdk-1_6_0_14-linux-i586-rpm.bin或jdk-1_6_0_14-linux-i586.bin 在/usr下新建java文件夹,将安装包放在/usr/java目录下 # mkdir /usr/java安装JDK # cd /usr/java ①jdk-1_6_0_14-linux-i586-rpm.bin文件安装 # chmod 777 jdk-1_6_0_14-linux-i586-rpm.bin ← 修改为可执行 # ./jdk-1_6_0_14-linux-i586-rpm.bin ← 选择yes同意上面的协议 # rpm -ivh jdk-1_6_0_14-linux-i586.rpm ← 选择yes直到安装完毕 ②jdk-1_6_0_14-linux-i586.bin文件安装 # chmod a+x jdk-1_6_0_14-linux-i586.bin ← 使当前用户拥有执行权限 # ./jdk-1_6_0_14-linux-i586.bin ← 选择yes直到安装完毕CentOS系统配置环境变量 # vi /etc/profile 在最后加入以下几行: export JAVA_HOME=/usr/java/jdk1.6.0_10 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin # reboot ← 重启机器配置生完成以上,我们就在CentOS系统中完成了JDK的安装以及配置。
D. centos后台运行程序(nohup+screen)
linux系统经常需要程序在后台运行,程序不随着会话的关闭或用户的退出而关闭。
有两种常用的后台运行程序的方式: nohup 和 screen 。
当前操作系统环境: centos7
(1)后台不挂起执行xxx.sh。标准输出、错误输出,输出到xxx.out文件
此种情况,程序会再后台执行, 退出用户 或关闭客户终端,不影响程序运行。如想关闭程序,可通过 kill 命令关闭。
(2)后台不挂起执行xxx.sh。标准输出、错误输出,均不输出
(1)输入输出重定向
linux环境下以下数字代表不同的含义:
默认情况下,标准输出、标准错误, 均会输出到控制台 。
默认所有的输出都是“标准输出”,除非将输出重定向到“标准错误”,才会出现“标准错误”输出
如 echo 'error msg' > &2 ,代表将输出结果 error msg 由 标准输出 重定向输出到 标准错误 中。
输出执行结果时,默认重定向的是标准输出的信息,如下,执行结果是一样的:
为什么错误输出到标准输出,写作 2>&1, 而不是写作 2>1 ?
因为: 2>1 表示将“标准错误”输出到文件 1 中,这里的 1 代表的是文件“1”,而不是标准输出。需写成 &1 ,表示为标准输出。
(2)&(后台执行)
命令 末尾 的 & 代表程序后台执行,执行完成后,仍然会将输出结果输出到指定的输出目标。
如只是简单在执行命令后加上&,程序每次执行输出, 仍然会将程序输出到控制台 (并不是全部执行完后才输出)。如下:
(3)nohup(不挂起)
使程序运行时不挂起, 不向 tty 输出信息。nohup 只是不将程序输出到前台,并不是完全在后台运行脱离当天会话,如果关闭会话,当前程序仍然会关闭。
常结合末尾的 & 一起使用。
如命令末尾不加上 & ,则当前会话窗口会等待运行的程序运行完毕,才可执行其他命令,如下:
上述命令,为执行test.sh(脚本见 9 测试脚本 ),并将 标准输出 重定向到 out.log 文件,标准错误重定向到 error.log 文件。
生成的日志文件如下:
screen(窗口管理器)可以创建后台会话窗口。退出当前会话后,后台会话窗口仍而在运行,可以随意切换到后台窗口中。
以下命令查看官方文档:
[[email protected] zhang]# screen -help Use: screen [-opts] [cmd [args]] or: screen -r [host.tty]
Options: -4 Resolve hostnames only to IPv4 addresses.解析主机名为IPv4地址。 -6 Resolve hostnames only to IPv6 addresses.解析主机名到IPv6地址。 -a Force all capabilities into each window's termcap.强制所有功能进入每个窗口的termcap。 -A -[r|R] Adapt all windows to the new display width & height.使所有窗口适应新的显示宽度和高度。 -c file Read configuration file instead of '.screenrc'.文件读取配置文件,而不是'.screenrc'。 -d (-r) Detach the elsewhere running screen (and reattach here).断开其他正在运行的屏幕(并在此重新连接)。 -dmS name Start as daemon: Screen session in detached mode.名称启动作为守护进程:屏幕会话在分离模式。 -D (-r) Detach and logout remote (and reattach here).断开和注销远程(并在此重新连接)。 -D -RR Do whatever is needed to get a screen session.执行获取屏幕会话所需的所有操作。 -e xy Change command characters.修改命令字符 -f Flow control on, -fn = off, -fa = auto.流量控制on, -fn = off, -fa = auto。 -h lines Set the size of the scrollback history buffer.设置滚动历史缓冲区的大小。 -i Interrupt output sooner when flow control is on.当流控制打开时,中断输出的速度更快。 -l Login mode on (update /var/run/utmp), -ln = off.登录模式on (update /var/run/utmp), -ln = off。 -ls [match] or -list Do nothing, just list our SockDir [on possible matches].什么都不做,只是列出我们的SockDir[可能的匹配]。 -L Turn on output logging.打开输出日志记录。 -m ignore STY变量,创建一个新的屏幕会话。 -O Choose optimal output rather than exact vt100 emulation.选择最优输出,而不是精确的vt100仿真。 -p window Preselect the named window if it exists.窗口预选命名窗口,如果它存在。 -q Quiet startup. Exits with non-zero return code if unsuccessful.安静的启动。如果不成功,则使用非零返回码退出。 -Q Commands will send the response to the stdout of the querying process.命令将响应发送到查询过程的stdout。 -r [session] Reattach to a detached screen process.重新连接到一个分离的屏幕进程。 -R Reattach if possible, otherwise start a new session.如果可能,重新连接,否则启动一个新会话。 -s shell Shell to execute rather than shell。 -S sockname Name this session <pid>.sockname instead of <pid>.<tty>.<host>. 将此会话命名为。sockname而不是<pid>.<tty>.<host>。 -t title Set title. (window's name).标题设置标题。(窗口的名字)。 -T term Use term as term用于windows,而不是“screen”。 -U Tell screen to use UTF-8 encoding.告诉screen使用UTF-8编码。 -v Print “Screen version 4.01.00devel (GNU) 2-May-06”.打印”屏幕版本4.01.00devel (GNU) 2-May-06″。 -wipe [match] Do nothing, just clean up SockDir [on possible matches].什么都不做,只是清理SockDir[可能的匹配]。 -x Attach to a not detached screen. (Multi display mode).连接到未分离的屏幕。(多显示模式)。 -X Execute <cmd> as a screen command in the specified session.在指定会话中执行作为屏幕命令。
E. CentOs下安装GMT的时候,最后生成的可执行文件夹/bin里头为什么只有6个文件
试试重新安装,参考一下别人的安装模式,安装完之后看看环境变量正不正常
F. centos编译安装了一个软件,只能到执行文件下才能用,怎么在任意目录下都可以用呢
您好,在CentOS系统中,软件安装程序比较纷繁复杂,不过最常见的有两种:1)一种是软件的源代码,您需要自己动手编译它。这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz)。2)另一种是软件的可执行程序,你只要安装它就可以了。这种软件安装包通常被是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm。当然,也有用rpm格式打包的源代码,用gzip压缩过的可执行程序包。只要您理解了以下的思路,这两种形式的安装包也不在话下了。
G. centos7实现程序的后台运行——多种方案整理
相信对服务端有所了解的同学对于 如何让进程后台运行 这个问题都有自己的处理方式,本人零零散散也知道一些方法,但偶尔也会陷入搞混的情况(知其然但不知其所以然,命令就这么用呗,也就不管为什么了)。加上近期有不止一个技术还不错朋友在跟我交流中对于如何处理这个问题产生了一些困惑,我想它可能是一个比较普遍存在的问题,因此打算较为系统地整理一下各种八仙过海的神通,同时也稍微扯一扯一些进程信号的问题。 在shell中通过命令行的方式启动一个server,如何能够让它长久地运行呢?我一旦关了这个shell它就无法服务了,这可不是我们想要的结果,这一节将会介绍各种相关的方法。做各种实验之前,我在 conoha 上申请了一台临时的vps,做完就把它释放了,操作系统是CentOS 7。 说句题外话,conoha这个云服务商个人感觉还不错,性价比很高,虽然可能东京的线路偶尔会丢包比较严重,但新加坡的线路很棒,出入100M带宽不限流量,我自己平时用的就是它。好,扯回来,继续我们的整理。 这篇文章的测试server我们就采用nodejs官网的demo吧: nohup顾名思义,就是忽略hup信号。hup信号是什么呢,就是当一个shell窗口关闭的时候,会给隶属于它的所有进程发一个hup信号,然后该进程就挂了,除非进程捕获了hup信号,然后做了其它的事情,而不是exit。 使用方式就是在平常的命令前加一个nohup命令: 默认情况下,这个命令会在当前目录下产生一个nohup.out文件作为程序的输出。当然你也可以使用管道的方式将输出重定向到其它地方: 这个符号其实并不能解决本文所提到的问题,它只是一个比较好的辅助方式让控制台重新回到你的掌控中,从而可以继续输入其它命令。 就像这样: 这样进程就不会把shell阻塞住了。 用括号把命令包起来运行,也是一个可以让进程后台运行的方式,它的原理是把进程所隶属的session从当前的shell中解放出来,丢给一个subshell。这样一来,shell关闭发送的hup信号就不会被发到它了。就像这样: 命令 输出 阻塞 关闭shell窗口进程还在 exit退出会话进程还在 node server.js 控制台 是 否 nohup node server.js nohup.out 是 否 (node server.js) 控制台 是 否 node server.js & 控制台 否 否 是 nohup node server.js & nohup.out 否 否 是 (node server.js &)node可用 控制台 否 是 是 setsid node server.js 控制台 否 是 是 SIGHUP :从终端上发出的结束信号. SIGINT :来自键盘的中断信号 ( ctrl + c ) . SIGKILL :该信号结束接收信号的进程 . SIGTERM :kill 命令发出 的信号. SIGCHLD :标识子进程停止或结束的信号. SIGSTOP :来自键盘 ( ctrl + z ) 或调试程序的停止执行信号. SIGQUIT :来自键盘 ( ctrl + \ ) 表示终止前台进程并生成 core 文件.
H. 如何在centos环境下运行.exe文件
安装虚拟机在虚拟机运行windows。
安装wine,wine相当于模拟windows环境,不过不是所有windows程序都能成功运行
I. LINUX里怎样运行exe文件
通常情况下,任何基于Windows的exe程序都不能在下运行,这是因为它们的内核是不同的。但是可以通过在Linux上安装wine来运行exe程序。
Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,macOS 及 BSD 等)上运行 Windows 应用的兼容层。Wine 不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是将 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其他一些行为的内存占用,让你能够干净地集合 Windows 应用到你的桌面。
安装 WineHQ 安装包(Ubuntu 18.04.2 64位系统为例)
如果您之前安装过来自其他仓库的 Wine 安装包,请在尝试安装 WineHQ 安装包之前删除它及依赖它的所有安装包(如:wine-mono、wine-gecko、winetricks),否则可能导致依赖冲突。
如果使用的是 64 位系统,请开启 32 bit 架构支持(如果之前没有开启的话):
# sudo dpkg –add-architecture i386
注意事项:如非必要,一般不太建议在Linux上运行exe程序,可能会遇到各种各样的的Bug。参考资料:
网页链接
J. 求教关于Centos 7开机自动启动脚本 问题
1. 自己新建一个脚本,如centnet-service.sh经过后面的几个步骤后,这个脚本在开机的时候会执行,在这个脚本里面可以写你开机的时候想执行的命令,如启动tomcat,oracle等服务2. 在脚本中输入启动服务的命令,如(开机启动tomcat):#!/bin/bashexport JDK_HOME=/home/java/jdk1.8.0_91export JAVA_HOME=/home/java/jdk1.8.0_91/home/tomcat/apache-tomcat-8.0.36/bin/startup.sh3. 执行如下命令,将该脚本标记为可执行文件(添加可执行的权限)chmod +x /home/centnet/centnet-service.sh4. 执行如下命令将/etc/rc.d/rc.local文标记为可执行文件在centos7中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的,执行下面的命令可以文件标记为可执行的文件chmod +x /etc/rc.d/rc.local5. 打开/etc/rc.d/rc.local文件,在最后面添加如下脚本/home/centnet/centnet-service.sh这样,centnet-service.sh这个脚本在开机的时候就会被执行了,以后再这里面写启动服务的命令就可以了