我有一个名为 test.sh 的shell脚本。
#! /bin/bash
mysql -u root -p <<dbEmployee1
use dbEmployee1;
UPDATE EMPLOYEE SET EMPLOYEE_NAME = 'Cyndi' WHERE EMPLOYEE_ID ='1';
SELECT * from EMPLOYEE;
dbEmployee1
mysql -u root -p <<dbBooks
use dbBooks;
SELECT * FROM Author;
dbBooks
关注this tutorial我想要做的是让我的脚本每10秒运行一次,但我会得到以下结果。
seng@wseng:/$ */10 * * * * /home/seng/Desktop/test.sh
bash: proc/10: Is a directory
我在这里错过了什么或做错了什么?
编辑(执行crontab -e后)
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
* * * * * cd /home/seng/Desktop/test.sh
答案 0 :(得分:1)
Cron只允许至少1分钟。因此,要每10秒安排一次,您所能做的就是在另一个每10秒运行一次的脚本中调用该脚本。这可能不是正确的解决方案,但可以满足您的目的。
这是一个简单的脚本,可以完成这项工作:
#!/bin/sh
while true
do
sh test.sh
sleep 10
done
另外,请记住test.sh执行的时间。因此,您可以在脚本中改变睡眠时间。
如果你想在一分钟内运行它,那么就是这个过程。
您需要确保拥有运行该脚本权限的用户应该是当前登录的用户。
在命令行中输入crontab -e
(将打开编辑器)。输入以下
* * * * * /absolute/path/to/the/script
现在先关闭编辑器,先按ESC
键,然后按:wq
,然后按ENTER
说明:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12)
| | | | .---- day of week (0 - 6) (Sunday=0 or 7)
| | | | |
* * * * * command to be executed
提到每个astrick值,并且可以相应地进行。
例如:
每分钟运行一次:
* * * * * command to be executed
每天午夜运行:
0 0 * * * command to be executed
您可以执行crontab -l
命令列出所有cronjobs,然后按crontab -r
删除任何内容。
只需确保另外两件事,每次更改文件时重新启动cron守护程序(service crond restart
)以及对其执行的脚本的权限级别(检查/var/mail/<user>
是否有日志)。