linux(centos/ubuntu)下使用crontab定时执行bash命令

  1. 首先写一段bash命令,然后把文件保存crontabMy.sh,放到服务器上。
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# 这里写自己的逻辑
cd /home/vagrant/code/api #进入目录
php artisan runNoExpired # 执行php命令
echo "----------------------------------------------------------------------------"
endDate=`date +"%Y-%m-%d %H:%M:%S"`
echo "★[$endDate] Successful"
echo "----------------------------------------------------------------------------"

  1. 测试下文件是否能执行在文件目录下执行
./myCrontab.sh

在这里插入图片描述
在这遇到个问题报错,是因为文件是在window下编辑的导致格式不对-bash: ./crontabMy.sh: /bin/bash^M: bad interpreter: No such file or directory

解决使用vim命令打开文件,然后设置一下文件格式,然后保存,问题解决。

vim crontabMy.sh
:set ff=unix
:wq
  1. 接下是开始编写crontab命令,在执行crontab的时候可能会让你选一下编辑器,我选的是vim
    linux(centos/ubuntu)下使用crontab定时执行bash命令_第1张图片
# 打开文件
crontab -e 
# 每分钟执行一次,并把日志写到指定的文件
*/1 * * * * /home/vagrant/code/api/app/Console/Commands/crontabMy.sh >> /home/vagrant/code/api/public/crontab.log 2>&1
# 保存文件
:wq

  1. 一些crontab的语法解释 ,直接上外链吧https://zhuanlan.zhihu.com/p/372043390

你可能感兴趣的:(linux,centos,ubuntu)