我有两个脚本,第二个依靠第一个脚本: b_reb : 该脚本为第二个脚本创build一个单元文件。 只有root用户login后才能启动a_reb服务,并且应该以root身份执行同一个会话。 这是b_reb脚本: #!/bin/bash # Installing updates and other software echo "Creating systemd unit file…" cat << EOF > /usr/lib/systemd/system/a_reb.service [Unit] Description="Basic setup" [Service] WorkingDirectory=$(pwd) Type=forking ExecStart=/bin/bash $(pwd)/a_reb KillMode=process [Install] WantedBy=multi-user.target EOF echo "Enabling a_reb at startup…" systemctl enable a_reb.service reboot now 所以服务器重新启动并且根login。现在在同一个会话中, a_reb应该通过启动a_reb.service来执行。 我还没有作出a_reb ,但其内容是无关紧要的。 例如:一旦rootlogin, a_reb被执行,并输出一个提示让root来回答。 我希望我能正确解释自己。 我也接受其他方式做这个。 主要思想是b_reb做一些事情然后重新启动,此后a_reb在重新启动之后a_reb运行。 [UPDATE] […]
我有一些问题。 我需要添加在Linux的自动运行,一些脚本。 但是在我的基础设施上,我有一个不同的分歧。 当然,在autorun中添加这个脚本的方式是不同的。 在CentOS中是chkconfig,在debian / ubuntu中是update-rc.d。 所以,我有一些脚本: function autorun () { if [ -f /etc/debian_version ]; then os="Debian $(cat /etc/debian_version)" echo $os update-rc.d ${i} defaults" elif [ -f /etc/redhat-release ]; then os=`cat /etc/redhat-release` echo $os chkconfig –add ${i}" else os="$(uname -s) $(uname -r)" echo $os echo "Other OS. Please check type of autorun in […]
我删除了/bin/bash 。 我打开了terminal,但稍后自动closures。 我是sudo组的普通用户。 我该怎么办? 我很恐慌。 我可以用Python / Perl更改/etc/passwd文件许可权,并将我的用户名中的shell脚本从bash更改为zsh ,然后注销并重新login? 我必须从PHP运行Python / Perl,因为我没有访问terminal。 或者我该怎么做? 这是Ubuntu桌面。
我有一个包含单个命令的shell脚本 sudo my_command | parse_to_exports_cmd 当我运行这个脚本时,我得到了以下标准输出 export MY_VAR_A=abcdef123 export MY_VAR_B=qwerty123 我将如何修改我的脚本来实际设置父shell中的这些环境variables?
我们今天早上注意到,我们无法使用SSHlogin到我们的服务器。 我们的服务器提供商然后在ram上安装了一个最小的Linux。 安装好磁盘和chroot后,我暂时停止了denyhosts,当我进入hosts.deny文件清除我们的IP地址时,我们看到以下内容。 这究竟是什么? # DenyHosts: Sat Jan 28 05:01:43 2017 | sshd: ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$ sshd: ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$ # DenyHosts: Sat Jan 28 05:01:43 2017 | sshd: ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$ sshd: ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$ # DenyHosts: Sat Jan 28 05:23:14 2017 | sshd: ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$ sshd: ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$ # DenyHosts: Sat Jan 28 05:23:14 2017 | sshd: ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$ sshd: ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@$ 另外,当我给命令,iptables -L,我得到以下。 我想清除iptables规则: […]
我正在编写备份轮换脚本,假设所有文件大于5天,并删除它们。 问题是我有一些奇怪的search结果。 例如: [root@spr1-nas01 storage]# date Wed Feb 8 14:48:09 EET 2017 [root@spr1-nas01 storage]# ll -rwxr-xr-x. 1 root root 1366884352 Dec 24 02:31 BACKUP_20161224 -rwxr-xr-x. 1 root root 51986944 Jan 28 19:37 BACKUP_20170128 -rwxr-xr-x. 1 root root 9681633280 Jan 31 06:45 BACKUP_20170131 所以我们得到了一些从现在开始5天以后的文件。 但我没有看到任何文件在'查找列表' [root@spr1-nas01 storage]# find . -ctime +5 -ls [root@spr1-nas01 storage]# 有任何想法吗?
我有一个格式为log_name_YY-MM-DD_HH_mm.log的日志文件。 日志每隔几个小时旋转一次,并创build包含创builddate和时间的新日志。 有时我需要使用tail -f命令来tail -f这个日志的实时输出。 日志旋转后,尾巴仍指向旧的文件名,必须手动重新启动与新的文件名。 有没有办法自动切换tail -f来使用新文件? 在这种情况下, tail -F选项( tail –follow=name –retry )不起作用,因为日志的文件名发生更改。
我正在运行一个Ubuntu 14.04.1 虽然我剩下的磁盘空间,我有一个100%的inode使用情况: ubuntu@ipsec-2:~$ df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvda1 524288 520606 3682 100% / 设备是/dev/xvda1 on / type ext4 (rw) 当使用统计时,我发现很多inode进入/ media: ubuntu@ipsec-2:/$ stat -t -c "%n: %i" ./* | sort -k2 -n {omit <100k inodes for clarity} ./initrd.img: 124172 ./bin: 262145 ./home: 262147 ./lib64: 262148 ./boot: 393217 ./etc: 393218 […]
使用UBUNTU 16。 MySQL查询从bash中失败,但从MySQL客户端运行: query=$(cat << EOF CREATE DATABASE \`${mysql_local_database}\` /*!40100 COLLATE \'utf8_hungarian_ci\' */; use \`${mysql_local_database}\`; GRANT SELECT, EXECUTE, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, INDEX, INSERT, REFERENCES, UPDATE, LOCK TABLES ON \`${mysql_local_database}\`.* TO 'myuser'@'%'; FLUSH PRIVILEGES; EOF ) echo $query mysql -u ${mysql_local_user} -p${mysql_local_pass} -h localhost […]
我有这些curl命令 1。 curl -XPUT "http://192.168.1.1:8080/locate" -d' { "crap": { "crazy": 1 }, "asap": { "peg": { "properties": { "url": { "type": "string", "index": "no" } } } } }' 2。 curl -XPOST "http://192.168.1.1:8080/locate" -d' { "url": "https://cdn.happyworld.com/lmfao" }' 我如何在one line curl命令中编写它们中的每一个,以便我可以轻松地将每一行放在bash脚本的一行中? 如果一行是不可能的,那么我怎样才能把它们格式化,让bash能够理解为一个命令呢? 谢谢!!!