我正在阅读《Linux From Scratch 11.0》一书。在三。构建 LFS 交叉工具链和临时工具,ii。工具链技术说明,有一些关于加拿大交叉编译的内容。我不明白为什么需要 3 个阶段和 3 台机器才能达到最终结果。文本假设我们从计算机 A 和一个在 A 上运行并为 A 生成二进制文件的编译器开始。那么为什么我们不直接使用该编译器来构建一个在 C 上运行并为 C 构建二进制文件的编译器呢?构建一个在 A 上运行但为 B 构建的编译器,然后构建一个在 B 上运行但为 C 构建的编译器,最后构建在 C 上运行并为 C 构建的编译器,为什么会有这么多麻烦呢?
我还在维基百科上找到了一篇关于它的文章 - https://en.wikipedia.org/wiki/Cross_compiler。
我正在创建一个自动化脚本。作为其中的一部分,我想添加一个 cron 作业。这是脚本失败的一部分:
BACKUP_USER=backupbot
SCRIPT_NAME=backup-script.sh
scp -i ./ssh-key ./$SCRIPT_NAME user@server:/tmp
ssh -i ./ssh-key user@server "
sudo mv /tmp/$SCRIPT_NAME /home/$BACKUP_USER/bin/ &&
sudo chown $BACKUP_USER /home/$BACKUP_USER/bin/$SCRIPT_NAME &&
sudo chmod 100 /home/$BACKUP_USER/bin/$SCRIPT_NAME &&
sudo sed -i 's/THE_URL/'${1}'/' /home/$BACKUP_USER/bin/$SCRIPT_NAME &&
sudo echo '*/1 * * * *' $BACKUP_USER /home/$BACKUP_USER/bin/$SCRIPT_NAME > /etc/cron.d/discourse-backup"
Run Code Online (Sandbox Code Playgroud)
有问题的命令是:
sudo echo '*/1 * * * *' $BACKUP_USER /home/$BACKUP_USER/bin/$SCRIPT_NAME > /etc/cron.d/discourse-backup
Run Code Online (Sandbox Code Playgroud)
我越来越:
bash:第 5 行:/etc/cron.d/discourse-backup:权限被拒绝
在此之前,一切都按原样执行。我的最后一条命令有什么问题?我认为这是引号的一些问题 - 我尝试了单引号和双引号的多种组合,但最终得到了相同(或更糟)的结果。