Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

5
如何测试某项是否在bash数组中?
帮助一个简单的脚本 #!/bin/bash array1=( prova1 prova2 slack64 ) a="slack64" b="ab" if [ $a = $b ] then echo "$a = $b : a is equal to b" else echo "$a = $b: a is not equal to b" fi 这个脚本根本行不通,我想要一个脚本来检查列表中是否存在slack64(我使用数组),然后简单地给我,是存在还是不存在。我不知道如何比较具有单个变量的数组。
15 bash  array 

2
OSX上的统计输出
我想使用stat命令来获取文件信息。我这样做: Josephs-MacBook-Pro:Desktop Joseph$ echo 'hello' > info.txt Josephs-MacBook-Pro:Desktop Joseph$ stat info.txt 16777220 21195549 -rw-r--r-- 1 Joseph staff 0 6 "Dec 21 20:45:31 2014" "Dec 21 20:45:30 2014" "Dec 21 20:45:30 2014" "Dec 21 20:45:30 2014" 4096 8 0 info.txt 第三行和第四行是我得到的输出。每当我使用stat命令时都会发生这种情况。同时,互联网上的每个人都会得到如下信息: File: `index.htm' Size: 17137 Blocks: 40 IO Block: 8192 regular …
15 osx  stat  portability 

1
cUrl:参数列表过长
我收到错误消息:Argument list too long尝试使用cUrl在JSON正文中的base64中发送文件时。 我正在使用这样的东西: DATA=$( base64 "$FILE" ) curl -X POST -H "Content-Type: application/json" -d '{ "data": "'"$DATA"'" }' $HOST 还有其他方法可以在JSON主体中获取数据吗? 考虑到我需要读取文件系统中的文件,将其转换为base64,然后将其发送到正文中。
15 curl 

3
btrfs错误:平衡期间出错-设备上没有剩余空间
我的Kubuntu 12.04系统根分区上的空间不足,无法启动。该命令df -h显示了很多可用空间(仅使用了37%): /dev/sda2 45G 17G 29G 37% 下一页指示我应该运行balance命令: https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_get_.22No_space_left_on_device.22_errors.2C_but_df_says_I.27ve_got_lots_of_space $ sudo btrfs fi balance start -dusage=5 /mount/point 我并不完全相信这是最好的方法,但这是我发现的唯一方法。但是,当我运行该命令时,出现以下错误: ERROR: error during balancing '/blah/blah/blah' - No space left on device 我收到相同的错误: $ sudo btrfs fi balance start -dusage=1 /mount/point 什么是正确的解决方案?

1
在CentOS 7上安装fail2ban
我使用@GarethTheRed的答案,这个问题到远程的CentOS 7服务器上安装的fail2ban。我能够完成直到的所有步骤,到tail -f /var/log/fail2ban.log那时,我得到的结果与他的回答不同。 这是我在此步骤中得到的结果: [root@remotecentosserver.com ~]# tail -f /var/log/fail2ban.log 2014-12-02 16:55:53,548 fail2ban.server.server[6667]: INFO Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.0 2014-12-02 16:55:53,550 fail2ban.server.database[6667]: INFO Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3' 2014-12-02 16:55:54,239 fail2ban.server.database[6667]: WARNING New database created. Version '2' 最后一行之后,除非输入,否则我只会得到一个光标,但没有命令提示符Ctrl-C。 当我键入时systemctl status fail2ban,它告诉我它fail2ban处于活动状态。当我退出系统并稍后重新登录时,sshd告诉我自从上次登录以来,已经有很多失败的登录尝试。因此应该有fail2ban日志。但是我似乎找不到它们。 有人可以告诉我如何进行设置,以便fail2ban生成可以跟踪的日志吗?
15 ssh  centos  openssh  sshd  fail2ban 

3
当前会话的bash历史记录
也许我忽略了一些事情,但是有没有办法像您正在使用的当前会话那样获取您当前的bash历史记录 如果我跑 ssh host $ pwd $ ls $ cd /tmp 我只想看那三个命令,别无其他


12
文件行到列的转换
假设我有一个文件: 文件1: PAPER TEAM MANISH NISHA GARIMA JYOUTI ........etc 我想要的File2: PAPER TEAM MANISH NISHA GARIMA JYOUTI 行到列的转换File1。

2
如何获取Unix服务器中可用端口的列表
我需要知道Solaris机器中的哪些端口可以自由用于任何类型的网络通信。 我尝试了netstat -a命令。但是返回的信息并不能令人信服地说明我可以在正在编写的新应用程序中使用哪个端口。感谢在这方面提供的任何帮助。
15 networking 


5
如何将列中的时间戳转换为日期?
我有一个包含此文件: 1415602803,LOGIN SUCCESS,AUTH,user2,192.168.203.63,10.146.124.73,59996,22 1415602807,LOGIN SUCCESS,AUTH,user1,172.24.31.10,172.32.1.1,48191,22 1415602811,LOGIN FAILED,AUTH,root,172.24.166.153,10.146.124.73,52506,22 1415602815,LOGIN FAILED,AUTH,user3,192.168.123.55,10.146.32.99,55750,22 我想将时间戳转换为以下格式的日期: 2014-11-10 02:00:03,LOGIN SUCCESS,AUTH,user2,192.168.203.63,10.146.124.73,59996,22 2014-11-10 02:00:07,LOGIN SUCCESS,AUTH,user1,172.24.31.10,172.32.1.1,48191,22 2014-11-10 02:00:11,LOGIN FAILED,AUTH,root,172.24.166.153,10.146.124.73,52506,22 2014-11-10 02:00:15,LOGIN FAILED,AUTH,user3,192.168.123.55,10.146.32.99,55750,22 我怎样才能做到这一点? 我知道这可行:(perl -pe 's/(\d+)/localtime($1)/e'从这个问题开始),但是输出格式是Mon Nov 10 02:00:03 2014。 我知道此命令可以将时间戳转换为所需的输出:date -d@1415602803 +"%F %H:%M:%S",但是由于所有引号和其他原因,我无法使其与一起awk使用system("cmd")。

2
ArchLinux和CUPS服务的打印问题
在ArchLinux上呆了几天(我怀疑是因为我已经升级到gnome 3.14),我再也无法打印了。如果我打开gnome控制中心的打印面板,则会收到类似(从意大利语翻译的)消息:“打印系统服务似乎不可用” 所以从终端我尝试了: $ sudo systemctl start cups Failed to start cups.service: Unit cups.service failed to load: No such file or directory. 我也尝试过重新安装杯子,但是没有运气。我也四处搜寻并尝试了各种建议的解决方案,但是它们都不适合我。

4
将数百万个文件从一台服务器传输到另一台服务器
我有两台服务器。其中一个拥有1500万个文本文件(约40 GB)。我正在尝试将它们转移到另一台服务器。我考虑过压缩它们并传输档案,但是我意识到这不是一个好主意。 因此,我使用了以下命令: scp -r usrname@ip-address:/var/www/html/txt /var/www/html/txt 但是我注意到该命令仅传输约50,000个文件,然后连接断开。 有没有更好的解决方案可以让我传输整个文件集?我的意思是要使用类似的方法rsync来传输丢失连接时未传输的文件。当另一个连接中断发生时,我将再次键入命令以传输文件,而忽略那些已经成功传输的文件。 使用不可能scp,因为它总是从第一个文件开始。

5
主机名在哪里存储我设置的主机名?
这很令人困惑。有人知道hostname命令在哪里存储和读取主机名吗? 我以为是/ etc / hostname,但是在我正在使用的Linux系统上没有这样的文件。我尝试使用strace查找它的位置,但是没有读取调用返回此信息: $ strace hostname 2>&1 | grep read read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340^\0\0\0\0\0\0"..., 832) = 832 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\30\2\0\0\0\0\0"..., 832) = 832 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16\0\0\0\0\0\0"..., 832) = 832 read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tr"..., 1024) = 248 read(3, "", 1024) = 0 然后我注意到它做了uname syscall,返回了此信息: uname({sys="Linux", node="server-name", ...}) = 0 / etc /中的递归grep不返回任何内容: grep "server-name" -r …
15 linux  hostname 

1
从脚本启动后台进程,并在脚本结束时进行管理
我想要类似于脚本中的守护程序来运行和配置进程。 我的Shell是在Cygwin下模拟的zsh,守护进程是基本的FTP服务器SFK。 对于这里重要的事情,脚本startserv.sh可以按如下方式草拟: #!/bin/sh read -s -p "Enter Password: " pw user=testuser share=/fshare cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share" $cmd & 运行脚本后startserv.sh,它停止(结束?)而不显示任何提示,然后: CTRL+ C结束脚本和后台作业过程; 点击Enter脚本将结束该过程,并保留在后台。 无论如何,我只能通过ps而看不到它jobs,因此,当我想关闭该过程时,我必须发送一个残酷的kill -9信号,我希望避免使用 CTRL+ C。 另一种方法 是在后台运行整个脚本。“将”,但是read如果脚本以方式运行,则该命令将无法获取用户输入startserv.sh &。 请注意,我需要一个临时服务器,而不是真正的守护程序:也就是说,我希望服务器进程在脚本结束后在后台运行,以执行简单的交互式Shell任务(使用虚拟机来宾),但是我不希望这样做。不需要生存过程的壳;因此nohup似乎不合适。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.