Linux Sed表达式在cron作业中不工作
我有一个包含以下脚本的sh文件:Linux Sed表达式在cron作业中不工作,linux,bash,sed,cron,Linux,Bash,Sed,Cron,我有一个包含以下脚本的sh文件: #!/bin/bash echo "Scripts para limpiar los JS" find . -type f -name "*.js" -print0 | xargs -0 sed -i "s/var _0xaae8=.*//" echo "Finalizo la limpieza de JS" 如果我在服务器中单独运行这一行,它将完美工作: find . -type f -name "*.js" -print0 | xargs -0 sed
#!/bin/bash
echo "Scripts para limpiar los JS"
find . -type f -name "*.js" -print0 | xargs -0 sed -i "s/var _0xaae8=.*//"
echo "Finalizo la limpieza de JS"
如果我在服务器中单独运行这一行,它将完美工作:
find . -type f -name "*.js" -print0 | xargs -0 sed -i "s/var _0xaae8=.*//"
但当我在cron作业中运行脚本时,会收到以下错误消息:
Scripts para limpiar los JS
sed: -e expression #1, char 19: unknown option to `s'
sed: -e expression #1, char 19: unknown option to `s'
sed: -e expression #1, char 19: unknown option to `s'
sed: -e expression #1, char 19: unknown option to `s'
find: `./.checkers': Permission denied
sed: -e expression #1, char 19: unknown option to `s'
Finalizo la limpieza de JS
我做错了什么?我们可以看看你的crontab吗?是的,当然可以:45 11***bash/home/cmspeopl/public\u html/scripts-limpieza.sh可以试试
查找-键入f-name“*.js”-maxdepth 1-exec sed-i的/var_0xaae8=.*//g'{}\代码>并查看是否有任何差异。服务器的响应:查找:缺少“-exec”的参数不要忘记,cron
作为root
运行,即使它是您自己的cron
也在非常有限的环境和不同的位置运行。如果你看到你的第一个错误,你会得到一个“权限被拒绝”。我假设您的find
中的点正在查找它不应该在的目录,因此sed
没有有效的输入。不要将
放入查找输入中。