Linux下非root用户计划任务问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下非root用户计划任务问题相关的知识,希望对你有一定的参考价值。

我在Linux上装了一个DB2,建了个DB2用户,然后想用DB2去执行系统级计划任务,我做了以下操作执行结果是有问题的.

第一步我改了/etc/cron.allow 内容改为,root db2inst1

第二步以root执行了crontab -u db2inst1 -e 添加内容为*/1 * * ** db2inst1 /infodms/systemscript/gzrb.sh

第三步编写了gzrb.sh,内容为db2 -tvf /infodms/systemscript/TRACETASK.sql

第三步编写了TRACETASK.sql,内容为

connect to infodms user infodms using yinzuo;

call P_GEN_TRACETASK('IF999900');

terminate;

然后我以db2inst1身份进去手动执行sh /infodms/systemscript/gzrb.sh是完全没问题的,后来我执行/sbin/service crond reload /sbin/service crond restart

让系统重新加载crontab及重启计划任务,结果报的错通过email发到了db2inst1上,内容为:/bin/sh: db2inst1: command not found

后来我去验证,在db2inst1中手动执行sh文件还是没问题的,然后用root去执行就报的同样的错误了.

问题很急.我一上午上网找问题,就是不知道问题出在了哪里,求高手帮帮忙解决一下啊

参考技术A crontab某用户的环境变量是不带进去的。 参考技术B db2inst1 删掉这个本回答被提问者采纳

Linux 下非root用户使用docker

Linux 下非root用户使用docker

通常我们使用linux系统的时候,最好是不要直接使用root账号,但是使用Docker的时候,默认又是不能使用非root用户的,关于原因,官方说法如下:

The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can access it with sudo. For this reason, docker daemon always runs as the root user.
To avoid having to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group.

下面是让非root用户可用root的步骤:

1

创建docker组

sudo groupadd docker

2

将当前用户加入docker组

sudo gpasswd -a ${USER} docker

3

重新启动docker服务(下面是CentOS7的命令)

sudo systemctl restart docker

4

当前用户退出系统重新登陆

5

运行docker命令,测试

docker ps

参考:http://blog.csdn.net/kongxx/article/details/52413332


以上是关于Linux下非root用户计划任务问题的主要内容,如果未能解决你的问题,请参考以下文章

Linux计划任务

Linux计划任务管理

Linux计划任务

Linux学习总结(二十七)任务计划,系统服务管理

Linux计划任务

Linux进程和计划任务管理