Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
hpanel上的Bash cron作业未定位目录_Bash_Cron - Fatal编程技术网

hpanel上的Bash cron作业未定位目录

hpanel上的Bash cron作业未定位目录,bash,cron,Bash,Cron,我在cron作业上有以下代码,它运行,但代码并没有真正做到它应该做的。它不创建目录,也不在代码中执行任何操作。请帮助检查我指向目录的方式是否错误 #/bin/bash NAMEDATE=`date+%F\u%H-%M`\u00whoami` NAMEDATE2=`date` mkdir~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE-m 0755 mysqldump-u u3811*****

我在cron作业上有以下代码,它运行,但代码并没有真正做到它应该做的。它不创建目录,也不在代码中执行任何操作。请帮助检查我指向目录的方式是否错误

#/bin/bash
NAMEDATE=`date+%F\u%H-%M`\u00whoami`
NAMEDATE2=`date`
mkdir~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE-m 0755
mysqldump-u u3811*****u boss-p“********”u3811*****u data|gzip~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/db.sql.gz
echo“这是$NAMEDATE2上的website.com数据库备份”|
mailx-a~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/db.sql.gz-s“website.com数据库附件”——mail@gmail.com 
chmod-R 0644~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/*
出口0

需要稍微修改NAMEDATE变量,如下所示,有关bash中变量的更多信息,请参见

发出mkdir命令时,如果不存在完整的目录结构,则需要传递-p选项来创建它

mkdir -p ~/home/u3811numbers/domains/website.com/public_html/cron/backup/files/$NAMEDATE -m 0755
此外,在基于Linux的发行版上,~字符被用作调用它的用户的主目录的快捷方式,因此,在下面的一行中,结果是/home//home/u3811*****/domains/website.com/public_html/cron/backup/files/2020-09-04_23-13。您可以在

在退出之前的最后一个命令中,可能需要传递通配符(*),以避免删除目录上的可执行位,请参见下文

chmod -R 0644 ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/
脚本的最终版本如下所示

#!/bin/bash

NAMEDATE=$(date +%F_%H-%M"_"$(whoami))

NAMEDATE2=date

mkdir -p ~/home/u3811******/domains/website.com/public_html/cron/backup/files/$NAMEDATE -m 0755

mysqldump -u u3811*****_boss -p"******" u3811*****_data | gzip > ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/db.sql.gz

echo "This is the database backup for website.com on $NAMEDATE2" | mailx -a ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/db.sql.gz -s "website.com Database attached" -- mail@gmail.com

chmod -R 0644 ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/*

要调试bash脚本,您始终可以传递-x标志以获取更多信息请查看此

感谢您的时间,eorochena,但问题仍然存在。我上面发布的代码在cpanel上运行良好,但目录格式为mkdir-p~/public_html/cron/backup/files/$NAMEDATE-m 0755,我不知道为什么同样的代码在hpanel上不起作用,这就是为什么我决定尝试使用file@fengxu这就是你想做的吗?我还有其他php cron作业,它们工作得非常好,我知道如何在hostinger上设置cron作业。我的问题是上面的bash脚本确实有效,cron作业执行了,但脚本没有执行它应该执行的操作。您是否尝试过使用SSH访问功能运行脚本中的每个语句?
#!/bin/bash

NAMEDATE=$(date +%F_%H-%M"_"$(whoami))

NAMEDATE2=date

mkdir -p ~/home/u3811******/domains/website.com/public_html/cron/backup/files/$NAMEDATE -m 0755

mysqldump -u u3811*****_boss -p"******" u3811*****_data | gzip > ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/db.sql.gz

echo "This is the database backup for website.com on $NAMEDATE2" | mailx -a ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/db.sql.gz -s "website.com Database attached" -- mail@gmail.com

chmod -R 0644 ~/home/u3811*****/domains/website.com/public_html/cron/backup/files/$NAMEDATE/*