1. 程式人生 > >linux下普通用戶的定時任務

linux下普通用戶的定時任務

oom lib video ssa lin 定時任務 通過 iss ted

普通用戶定義crontab定時任務:

比如oracle用戶定義一個定時任務:每分鐘打印當前目錄

[[email protected] ~]$ crontab -e

/1 * /bin/ls -al > /tmp/ls.log

如何判斷定時任務有沒有執行?

首先crond服務要處於運行狀態

[[email protected] ~]$ service crond status

Redirecting to /bin/systemctl status crond.service

● crond.service - Command Scheduler

Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)

Active: active (running) since Sun 2018-07-15 08:27:38 EDT; 2min 43s ago

Main PID: 6189 (crond)

CGroup: /system.slice/crond.service

└─6189 /usr/sbin/crond -n

[[email protected] ~]$

1.在root用戶下使用mail命令

[[email protected] ~]# mail

Heirloom Mail version 12.5 7/5/10. Type ? for help.

"/var/spool/mail/root": 801 messages 9 new 94 unread

N795 (Cron Daemon) Sun Jul 15 08:25 35/932 "Cron <[email protected]> /bin/ls"

N796 (Cron Daemon) Sun Jul 15 08:26 35/932 "Cron <[email protected]> /bin/ls"

N797 (Cron Daemon) Sun Jul 15 08:27 35/932 "Cron <[email protected]> /bin/ls"

N798 (Cron Daemon) Sun Jul 15 08:28 35/932 "Cron <[email protected]> /bin/ls"

N799 (Cron Daemon) Sun Jul 15 08:29 35/932 "Cron <[email protected]> /bin/ls"

N800 (Cron Daemon) Sun Jul 15 08:30 35/932 "Cron <[email protected]> /bin/ls"

& file

"/var/spool/mail/root": 801 messages 9 new 94 unread

& h

N793 (Cron Daemon) Sun Jul 15 08:23 35/932 "Cron <[email protected]> /bin/ls"

N794 (Cron Daemon) Sun Jul 15 08:24 35/932 "Cron <[email protected]> /bin/ls"

N795 (Cron Daemon) Sun Jul 15 08:25 35/932 "Cron <[email protected]> /bin/ls"

N796 (Cron Daemon) Sun Jul 15 08:26 35/932 "Cron <[email protected]> /bin/ls"

N797 (Cron Daemon) Sun Jul 15 08:27 35/932 "Cron <[email protected]> /bin/ls"

N798 (Cron Daemon) Sun Jul 15 08:28 35/932 "Cron <[email protected]> /bin/ls"

N799 (Cron Daemon) Sun Jul 15 08:29 35/932 "Cron <[email protected]> /bin/ls"

N800 (Cron Daemon) Sun Jul 15 08:30 35/932 "Cron <[email protected]> /bin/ls"

&800

Message 800:

From [email protected] Sun Jul 15 08:30:01 2018

Return-Path: <[email protected]>

X-Original-To: root

Delivered-To: [email protected]

From: "(Cron Daemon)" <[email protected]>

To: [email protected]

Subject: Cron <[email protected]> /bin/ls

Content-Type: text/plain; charset=UTF-8

Auto-Submitted: auto-generated

Precedence: bulk

X-Cron-Env: <XDG_SESSION_ID=278>

X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>

X-Cron-Env: <LANG=en_US.UTF-8>

X-Cron-Env: <SHELL=/bin/sh>

X-Cron-Env: <HOME=/root>

X-Cron-Env: <PATH=/usr/bin:/bin>

X-Cron-Env: <LOGNAME=root>

X-Cron-Env: <USER=root>

Date: Sun, 15 Jul 2018 08:30:01 -0400 (EDT)

Status: R

\

anaconda-ks.cfg

Desktop

Documents

Downloads

initial-setup-ks.cfg

Music

Pictures

Public

Templates

Videos

在mial交互環境下,通過file命令顯示當前郵件總數等信息

通過head查看最近的郵件

輸入編號查看該郵件的詳細信息

2.查看日誌:tail -n 10 /var/log/cron

[[email protected] ~]# tail -n 10 /var/log/cron

Jul 15 08:31:01 node2 CROND[6297]: (root) CMD (/bin/ls)

Jul 15 08:31:01 node2 CROND[6298]: (oracle) CMD (/bin/ls -al > /tmp/ls.log )

Jul 15 08:32:01 node2 CROND[6321]: (oracle) CMD (/bin/ls -al > /tmp/ls.log )

Jul 15 08:32:01 node2 CROND[6322]: (root) CMD (/bin/ls)

Jul 15 08:33:02 node2 CROND[6342]: (root) CMD (/bin/ls)

Jul 15 08:33:02 node2 CROND[6343]: (oracle) CMD (/bin/ls -al > /tmp/ls.log )

Jul 15 08:34:01 node2 CROND[6362]: (root) CMD (/bin/ls)

Jul 15 08:34:01 node2 CROND[6363]: (oracle) CMD (/bin/ls -al > /tmp/ls.log )

Jul 15 08:35:01 node2 CROND[6382]: (oracle) CMD (/bin/ls -al > /tmp/ls.log )

Jul 15 08:35:01 node2 CROND[6383]: (root) CMD (/bin/ls)

[[email protected] ~]#

日誌文件中記錄了所有用戶的定時任務執行情況

3.在普通用戶下使用mail查看(定時任務中要明確執行定時任務的用戶,否則即使在oracle用戶下定義的定時任務可能不能收到郵件)

[[email protected] ~]$ crontab -l

/1 * oracle /bin/ls -al > /tmp/ls.log

[[email protected] ~]$

[[email protected] ~]$ mail

Heirloom Mail version 12.5 7/5/10. Type ? for help.

"/var/spool/mail/oracle": 6 messages 1 unread

1 (Cron Daemon) Mon Mar 5 14:10 52/2476 "Cron <[email protected]> ls -al"

2 (Cron Daemon) Sun Jul 15 06:10 57/2777 "Cron <[email protected]> /bin/ls -al"

3 (Cron Daemon) Sun Jul 15 06:11 57/2777 "Cron <[email protected]> /bin/ls -al"

4 (Cron Daemon) Sun Jul 15 06:12 57/2778 "Cron <[email protected]> /bin/ls -al"

5 (Cron Daemon) Sun Jul 15 06:13 57/2778 "Cron <[email protected]> /bin/ls -al"

U 6 (Cron Daemon) Sun Jul 15 08:38 26/929 "Cron <[email protected]> oracle /bin/ls -al > /tmp/ls.log"

&

在普通用戶下不能直接查看/var/log/cron文件

[[email protected] ~]$ tail -n 10 /var/log/cron

tail: cannot open ‘/var/log/cron’ for reading: Permission denied

You have new mail in /var/spool/mail/oracle

[o[email protected] ~]$

定時任務還有一種寫在/etc/crontab文件中的方式,但是在centos7中寫在該文件中執行會報錯

[[email protected] ~]$ cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

For details see man 4 crontabs

Example of job definition:

.---------------- minute (0 - 59)

| .------------- hour (0 - 23)

| | .---------- day of month (1 - 31)

| | | .------- month (1 - 12) OR jan,feb,mar,apr ...

| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

| | | | |

* user-name command to be executed

[[email protected] ~]$

喜歡的點點關註,點點贊。

對Java技術,架構技術感興趣的同學,歡迎加QQ群585550789,一起學習,相互討論。

群內已經有小夥伴將知識體系整理好(源碼,筆記,PPT,學習視頻),歡迎加群領取。

linux下普通用戶的定時任務