跳至主要内容

Oracle学习笔记20080121

为了提交你刚刚创建的crontab文件,可以把这个新创建的文件作为cron命令的参数:
$ crontab davecron
这样可以提交该文件
$ crontab -e可编辑
crontab文件(进去后发觉编辑界面简直难受的要死,还是vim好)
$ crontab -l可列出crontab crontab -l > ...可将文件输出到别的地方

在编辑crontab的时候可以加入执行语句
30 3 1 * * /bin/find -name "core" -exec rm {} \;该语句的意思是每个月1号3点半把core文件找出来然后删掉(ubuntu下不知道,难道需要只能切换用户或者直接root?)

删除crontab 直接$crontab -r
如果不小心误删了crontab文件,假设你在自己的$HOME目录下还有一个备份,那么可以将其拷贝到/var/spool/cron/,其中是用户名。
如果由于权限问题无法完成拷贝,可以用:
$ crontab 其中是你在$HOME目录中副本的文件名。
我建议你在自己的$HOME目录中保存一个该文件的副本。这就是为什么有些系统文档建议不要直接编辑crontab文件,而是编辑该文件的一个副本,然后重新提交新的文件。有些crontab的变体有些怪异,所以在使用crontab命令时要格外小心。如果遗漏了任何选项,crontab可能会打开一个空文件,或者看起来像是个空文件。这时敲delete键退出,不要按<>,否则你将丢失crontab文件。

at命令允许用户向cron守护进程提交作业,使其在稍后的时间运行。
也可通过/etc/at.allow和/etc/at.deny来控制用户运用at命令
at命令的基本形式为:
at [-f script] [-m -l -r] [time] [date]
其中,-f script 是所要提交的脚本或命令。
-l 列出当前所有等待运行的作业。
atq命令具有相同的作用。
-r 清除作业。为了清除某个作业,还要提供相应的作业标识(ID);有些UNI X变体只接受atrm作为清除命令。
-m 作业完成后给用户发邮件。
time at命令的时间格式非常灵活;可以是H、HH.HHMM、HH:MM或H:M,其中H和M分别是小时和分钟。还可以使用a.m.或p.m .。
date 日期格式可以是月份数或日期数,而且at命令还能够识别诸如today、tom orrow这样的词。
at的使用方法如果你想提交若干行的命令,可以在at命令后面跟上日期/时间并回车。
然后就进入了at命令提示符,这时只需逐条输入相应的命令,然后按退出。
$at 21:10
at>find / -name "passwd" -print
at>
就是

如果希望向at命令提交一个shell脚本,使用其命令行方式即可。在提交脚本时使用-f选项。
例子:
$at 3.00pm tomorrow -f /apps/bin/db_table.sh还可以使用echo命令向
at命令提交作业:$ echo find /etc -name "passwd" -print at now +1 minute

$at -l后其中,第一行是作业标识,后面是作业运行的日期/时间。最后一列a代表at。还可以使用atq命令来完成同样的功能,它是at命令的一个链接。当提交一个作业后,它就被拷贝到/var/spool/at目录中,准备在要求的时间运行。

清除作业的命令格式为:atrm [job no] 或at -r [job no]
当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。
可以使用&命令把作业放到后台执行。
该命令的一般形式为:命令 &
不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
command >out.file 2>&1 &
在后台提交命令现在我们运行一个find命令,查找名为“srm.conf”的文件,并把所有标准输出和错误输出重定向到一个叫作find.dt的文件中:
$find /etc -name "srm.conf" -print > find.dt 2>&1 &
[1] 27015
27015是命令提交后系统给的进程号,当该作业完成时,按任意键(一般是回车键)就会出现一个提示:
当一个命令在后台执行的时候,可以用提交命令时所得到的进程号来监控它的运行。
在前面的例子中,我们可以按照提交ps1时得到的进程号,用ps命令和grep命令列出这个进程:
例如$ps x grep 28305如果不支持x命令可以$ps -ef grep 28305

杀死后台进程kill -signal [process_number]
nohup如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户之后继续运行相应的进程.Nohup就是不挂起的意思(nohang up)。
该命令的一般形式为:nohup command &
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1
在上面的例子中,输出被重定向到myout.file文件中。

一次提交几个作业如果希望一次提交几个命令,最好能够把它们写入到一个shell脚本文件中,并用nohup命令来执行它。例如,下面的所有命令都用管道符号连接在一起;我们可以把这些命令存入一个文件,并使该文件可执行。

第四章文件名
*好可以匹配任何字符
?比配单个字符
[...]和[!...]使用[ . . . ]可以用来匹配方括号[ ]中的任何字符。
在这一方法中,还可以使用一个横杠-来连接两个字母或数字,以此来表示一个范围。
在下面的例子中,列出了以i或o开头的文件名:类似于ls [io]*

$ ls [A-Z]*查看A-Z的字母
$ ls .*查看隐藏文件

使用&&使用&&的一般形式为:
命令1 && 命令2这种命令执行方式相当地直接。&&左边的命令(命令1)返回真(即返回0,成功被执行)后,&&右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功 &&那么执行这个命令”。举例:
$ mv /apps/bin /apps/dev/bin && rm -r /apps/bin

使用 的一般形式为:
命令1 命令2的作用有一些不同。如果 左边的命令(命令1)未执行成功,那么就执行 右边的命令(命令2);或者换句话说,“如果这个命令执行失败了 那么就执行这个命令”。
在这里不只可以使用系统命令;
这里我们首先对month _ end.txt文件执行了一个名为comet的shell脚本,如果该脚本未执行成功,该shell将结束。$ comet month_end.txt exit

如果希望把几个命令合在一起执行,shell提供了两种方法。既可以在当前shell也可以在子shell中执行一组命令。为了在当前shell中执行一组命令,可以用命令分隔符隔开每一个命令,并把所有的命令用圆括号()括起来。
它的一般形式为:(命令1;命令2;. . .)如果使用{ }来代替(),那么相应的命令将在子shell而不是当前shell中作为一个整体被执行,只有在{ }中所有命令的输出作为一个整体被重定向时,其中的命令才被放到子shell中执行,否则在当前shell执行。它的一般形式为:{命令1;命令2;. . . }
$comet month_end (echo "Hello"mail user;exit)
------------------------------
清早吧早特别霉,链条拖链,还够不到,到公司拿家伙下楼修,天那个冷啊,还得把盖泥板拆下来修。

评论

此博客中的热门博文

Python学习笔记20100117

映射list   Dictionary 是用{}. list 是一那个[]. turple是用() 当你定义过dictionary后,你可以使用d.keys(), d.values(),d.items()将定义后的时候分别显示出来 当然可以将list里的值加减乘除,也可以如一般的定义直接重新复制这个list. 链接与分割字符串的 li=";", join(li) 则显示的就是 分隔符为;的数 如果使用li=li.split(";")则将刚刚;的分隔符删除,而split里也可定义域,如li.split(";",1)   自省 <---这是啥 之前在使用的时候发觉有些书本上的模块不能调用,很多是py脚本定义过的函数。 下载该脚本s,然后上传至指定位置。 >>>import sys >>>sys.path >>>sys.path.append("绝对位置")然后就能调用这些脚本和参数了。 删除 >>>sys.path.pop() 定义一个参数是 def info(test, test1=10.test2=12): info是函数名,test是必备参数,因为没有定义值,test1和test2是可选参数,定义了初始值   以上是外部函数的调用,下面转到内部函数 内部函数有type,str,dir及其他   ---type 返回任意字符的类型,模块也可以。types模块 >>> type(1) <type 'int'> >>> li=[] >>> type(li) <type 'list'> >>> import odbchelper >>> type(odbchelper) <type 'module'> >>> type(sys) <type 'module'> >>> import types ...

Python学习笔记20100128

methodList = [method for method in dir(object) if callable(getattr(object, method))] ###插一句, ifconfig pcn0 unplumb 去禁solaris的网卡plumb起网卡   and, or  已经and-or一起用。 and 两者为真,print第二个数,一个为假一个为真返回假,三者为真返回最后一个真。 or 两个为真,返回第一个, 一个为假一个为真返回真,三者为假返回最后一个假   lambda可快速定义最小值函数   g = lambda x:x*2 g(3) 6 (lambda x:x*2)(3)   doc string print getattr(object,mothod).__doc__   ljust ljust 用空格填充字符串以符合指定的长度。info 函数使用它生成了两列输出并将所有在第二列的 doc string 纵向对齐。 如果小于的话不会从中截断   -----面向对象 首先导入,你可以选择import module or from module import module 如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import。 如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import。 如果模块包含的属性和方法与你的某个模块同名,你必须使用 import module 来避免名字冲突   -----类的定义 class Lofs    pass   这个类的名字是 Loaf,它没有从其它类继承。 类名通常是第一个字母大写,如:EachWordLikeThis,但这只是一个习惯,不是一个必要条件。   这个类没有定义任何方法或属性,但是从语法上,需要在定义中有些东西,所以你使用 pass。这是一个 Python 保留字,仅仅表示 “向前走,不要往这看”。它是一条什么都不做的语句,当你删空函数或类时,它是一个很好的占位符。   你可能猜...

Back to Blog again

     My last blog was almost 6 years again.  lots of things happening those years. like marriage, and move to another country, simply relocation, something is very big in my life.      Back to now,  I guess it is a very good time to start with the blog again. no matter daily life or the tech parts.      These blog may or will contains various languages, Chinese, English or Few Japanese. The first thing, I change the profile to Kamata life, Kamata is Japanese words. "鎌田"  as Kanji. why this change happened, due to we will move from Tamagawa "玉川" to Kamata very soon. I hope I can start to write this not daily, but I hope I can do this continuously.