千家信息网

如何分析linux中nohup命令及cron crontab

发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,如何分析linux中nohup命令及cron crontab,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、nohup命令介绍:如果你
千家信息网最后更新 2024年11月18日如何分析linux中nohup命令及cron crontab

如何分析linux中nohup命令及cron crontab,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1、nohup命令介绍:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思(no hang up)

在shell中,文件描述符通常是:STDIN标准输入,STDOUT标准输出,STDERR标准错误输出,即:0,1,2,

例子:nohup abc.sh > nohup.log 2>&1 &

其中2>&1 指将STDERR重定向到前面标准输出定向到的同名文件中,即&1就是nohup.log

那么结果就是当执行的命令发生标准错误,那么这个错误也会输出到你指定的输出文件中

nohup把abc.sh的输出重定向到文件nohup.log 同时出现错误也输出到nohup.log ,然后后台执行。
There are two formats for redirecting standard output and standard error:
&>word
and
>&word
Of the two forms, the first is preferred. This is semantically equivalent to
>word 2>&1

2、cron和crontab

cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。有一个叫做crontab的命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。可以使用它运行任意一个shell脚本或某个命令,每小时运行一次,或一周三次,这完全取决于你。每一个用户都可以有自己的crontab文件,但在一个较大的系统中,系统管理员一般会禁止这些文件,而只在整个系统保留一个这样的文件。系统管理员是通过cron.deny和cron.allow这两个文件来禁止或允许用户拥有自己的crontab文件。
3.1、crontab的域
为了能够在特定的时间运行作业,需要了解crontab文件每个条目中各个域的意义和格式。
下面就是这些域:
第1列分钟1~5 9
第2列小时1~2 3(0表示子夜)
第3列日1~3 1
第4列月1~1 2
第5列星期0~6(0表示星期天)
第6列要运行的命令
下面是c r o n t a b的格式:
分< >时< >日< >月< >星期< >要运行的命令
其中< >表示空格。
crontab文件的一个条目是从左边读起的,第一列是分,最后一列是要运行的命令,它位于星期的后面。
在这些域中,可以用横杠-来表示一个时间范围,例如你希望星期一至星期五运行某个作业,那么可以在星期域使用1-5来表示。还可以在这些域中使用逗号",",例如你希望星期一和星期四运行某个作业,只需要使用1,4来表示。可以用星号*来表示连续的时间段。如果你对某个表示时间的域没有特别的限定,也应该在该域填入*。该文件的每一个条目必须含有5个时间域,而且每个域之间要用空格分隔。该文件中所有的注释行要在行首用#来表示。
3.2、crontab条目举例
这里有crontab文件条目的一些例子:
30 21* * * /apps/bin/cleanup.sh
上面的例子表示每晚的21:30运行/apps/bin目录下的cleanup.sh。
45 4 1,10,22 * * /apps/bin/backup.sh
上面的例子表示每月1、10、22日的4:45运行/apps/bin目录下的backup.sh。你可能已经注意到上面的例子中,每个命令都给出了绝对路径。当使用crontab运行shell脚本时,要由用户来给出脚本的绝对路径,设置相应的环境变量。记住,既然是用户向cron提交了这些作业,就要向cron提供所需的全部环境。不要假定cron知道所需要的特殊环境,它其实并不知道。所以你要保证在shell脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。如果cron不能运行相应的脚本,用户将会收到一个邮件说明其中的原因。
3.3、crontab命令选项
crontab命令的一般形式为:
crontab [-u user] -e -l -r
其中:
-u 用户名。
-e 编辑crontab文件。
-l 列出crontab文件中的内容。
-r 删除crontab文件。
如果使用自己的名字登录,就不用使用- u选项,因为在执行crontab命令时,该命令能够知道当前的用户。
3.4、创建一个新的contab文件
在考虑向cron进程提交一个crontab文件之前,首先要做的一件事情就是设置环境变量EDITOR。cron进程根据它来确定使用哪个编辑器编辑crontab文件。99 %的UNIX和LINUX用户都使用vi,如果你也是这样,那么你就编辑$HOME目录下的.profile文件,在其中加入这样一行:
EDITOR=vi; export EDITOR
然后保存并退出。
不妨创建一个名为cron的文件,其中是用户名,为了提交你刚刚创建的crontab文件,可以把这个新创建的文件作为cron命令的参数:
$ crontab davecron
现在该文件已经提交给cron进程,同时,新创建文件的一个副本已经被放在/var/spool/cron目录中,文件名就是用户名(即,dave)。
3.5、列出crontab文件
为了列出crontab文件,可以用:
$crontab -l
3.6、编辑crontab文件
如果希望添加、删除或编辑crontab文件中的条目,而EDITOR环境变量又设置为vi,那么就可以用vi来编辑crontab文件,相应的命令为:
$ crontab -e
可以像使用vi编辑其他任何文件那样修改crontab文件并退出。
3.7、删除crontab文件
为了删除crontab文件,可以用:
$ crontab -r
3.8、恢复丢失的crontab文件
如果不小心误删了crontab文件,假设你在自己的$HOME目录下还有一个备份,那么可以将其拷贝到/var/spool/cron/,其中是用户名。如果由于权限问题无法完成拷贝,可以用:
$ crontab
其中,是你在$HOME目录中副本的文件名。

看完上述内容,你们掌握如何分析linux中nohup命令及cron crontab的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

文件 命令 运行 用户 星期 进程 输出 就是 条目 环境 目录 作业 例子 变量 时间 标准 系统 脚本 用户名 错误 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 成都工业软件开发费用是多少 数据库设计和解决方案 软件开发需要的知识背景 加大网络安全经费 战争英雄为什么服务器没连接 网络安全保障零事故 5年软件开发薪酬 参加网络安全教育的体会 上传到服务器的软件 服务器的安全性怎么维护 数据库原理及应用案例2016 国家标准全文数据库 光明区无源网络技术开发咨询报价 易语言行业软件开发教程 计算机网络安全文献检索报告 网络安全自检自查 网络安全媒体 微信数据库在哪个国家 我和网络安全心得体会 方舟生存进化进服务器会崩吗 宝山区品牌网络技术欢迎咨询 网络安全法自什么起施行 移动网络怎么老说联不上服务器 网络安全工作宣传活动 贝尔实验室 软件开发 世界互联网科技成果发布会 网络安全法竞赛答案哪里查 游戏中的选服务器是什么意思 网络安全与信息化会议讲话 网络安全的具体命令
0