有什么办法可以撤消sudo脚本中的内容吗?喜欢..
sudo ./script.sh
Run Code Online (Sandbox Code Playgroud)
sudo具有权限的命令 1,2,3,4,5
命令 6,7,8,9 无sudo权限
我已阅读这篇文章中的答案,但它似乎对我的问题不起作用。
我正在通过 wget 的 stdin 执行 bash 脚本:
wget -O - http://serverip/subfolder/script | sudo bash
Run Code Online (Sandbox Code Playgroud)
我尝试过使用apt-get -y --force-yes install <packages..> || true,但如果列出的脚本是由 apt-get 安装的,它仍然会退出脚本。
如果已安装所有列出的软件包,它不会退出脚本。
apt-get upgrade如果我有一个并且它安装了软件包,也会发生同样的事情。它将退出脚本。
我有另一组脚本,似乎有效。在这种情况下,安装脚本只是一个存根,用于下载、运行脚本bash <scriptname>,然后删除脚本。脚本本身将通过 sudo 来提升其权限。 apt-get在这里按预期工作。
任何有关如何防止apt-get终止脚本的见解将不胜感激。
我有一个文件,其中包含这样的下载链接:
Google.com/image2
Google.com/image3
Google.com/image4
Google.com/image5
Google.com/image6
Run Code Online (Sandbox Code Playgroud)
我想使用脚本下载所有这些。如果名称以's'开头,则将此文件下载到s目录,如果是b,则将其移动到b目录...
谁能告诉我这个脚本有什么问题?
它在 中不起作用cron,但在我正常执行时工作正常。
警告:此命令很危险,可能会删除大量文件
#!/bin/bash
/bin/find . -maxdepth 1 -type d -ctime +2 -exec /bin/rm -rf {} \;
Run Code Online (Sandbox Code Playgroud) 我创建了一个/etc/rc.local:
$ cat /etc/rc.local
#!/bin/bash
echo "Starting"
randomString=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1`
echo "Finished"
Run Code Online (Sandbox Code Playgroud)
这在交互式运行时运行:
$ /etc/rc.local
Starting
Finished: lkFcvByNaIu7zmxuCYB3BQmJ05LwuVWL
Run Code Online (Sandbox Code Playgroud)
但是,当从 systemd 运行时,它会挂起并且不会返回。
如果我 ctrl+C 看起来它挂在fold命令上:
$ systemctl status rc-local
? rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; enabled-runtime; vendor preset: enabl
Drop-In: /lib/systemd/system/rc-local.service.d
??debian.conf
Active: activating (start) since Mon 2019-03-11 12:04:06 UTC; 12s ago
Docs: man:systemd-rc-local-generator(8)
Cntrl PID: 936 (rc.local)
Tasks: 5 (limit: 1152)
CGroup: /system.slice/rc-local.service …Run Code Online (Sandbox Code Playgroud) 我有一个名为的网站xplosa.com,它有一个有效的 SSL 证书,我通过 bash 脚本应该能够计算剩余天数到期。我知道有很多替代方法可以完成这项工作,但我喜欢使用 Ubuntu bash 。顺便说一句,我正在使用Ubuntu 18.04
这是我的示例逻辑
#!/bin/bash
get_the_cert_expiry_date() {
# command to retrieve the expiry date
}
currentDate="$(date +%Y-%m-%d)"
website="xplosa.com"
certExpDate="$(get_the_cert_expiry_date)"
count=$((currentDate - certExpDate))
echo "remaining days for expiry: ${count}"
Run Code Online (Sandbox Code Playgroud)
get_the_cert_expiry_date#!/bin/bash
printf "Type in a whole number!: " && read X
x=1
while [ $x -le 5 ]
do
echo x
x=$(( $x - 1 ))
done
Run Code Online (Sandbox Code Playgroud)
我希望这个脚本让用户输入一个数字,然后让它从那个数字“x”开始倒计时并停在 0。我不知道为什么它只是无限地继续运行而不是停在 0。
我有一个名为clearcache.sh的脚本来清除我的缓冲区/缓存,但是当我运行时它一直说权限被拒绝。
脚本中的内容:clearcache.sh
#!/bin/bash
sync && echo 1 | tee /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)
-rwxr-xr-x 1 rt rt 464 Dec 5 02:10 clearcache.sh
Run Code Online (Sandbox Code Playgroud)
我如何运行它来测试它:
rt@sys76:~/clearcache$ ./clearcache.sh
tee: /proc/sys/vm/drop_caches: Permission denied
1
Run Code Online (Sandbox Code Playgroud)
我想把它放在一个 chron 工作中,但我需要解决这个权限问题:
更新: 这是drop_caches文件,它的权限归 root 所有,使用脚本从 chron 作业运行它的正确方法是什么?PS:我正在运行 Ubuntu 20.04
我正在尝试解析一个多行句子:
You have to go tomorrow by
car.
Run Code Online (Sandbox Code Playgroud)
如您所见,有一个新的 line + space 然后是“car”。
我使用了这个正则表达式:
You.have.to.go.tomorrow.by.\n.+
Run Code Online (Sandbox Code Playgroud)
当我将它与regex101一起使用时效果很好,但是当我在 bash 中使用它时,它仅适用于第一句话:
Parser='You.have.to.go.tomorrow.by.\n.+'
Run Code Online (Sandbox Code Playgroud)
结果:
You have to go tomorrow by
Run Code Online (Sandbox Code Playgroud)
我正在使用 bash,我想要完整的句子:
"You have to go tomorrow by car."
Run Code Online (Sandbox Code Playgroud)
我在用:
sed -e 's/<[^>]\+>/ /g' | grep -oP $parser
Run Code Online (Sandbox Code Playgroud)
删除所有 HTML 标签,然后 grep 解析器。