quickreference:unix
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
quickreference:unix [2023/10/08 14:45] – rodolico | quickreference:unix [2025/02/05 00:12] (current) – [Shell (mainly BASH)] rodolico | ||
---|---|---|---|
Line 5: | Line 5: | ||
===== Systems Administration ===== | ===== Systems Administration ===== | ||
+ | ==== Partitioning large drives ==== | ||
+ | |||
+ | Drives greater than 2 Terabytes are not handled well by the standard //fdisk// application, | ||
+ | |||
+ | This assumes we have a drive, sdg, that we want to set up with gpt and create one partition on. That partition will set up on optimal sector boundries, and use all of the space available. | ||
+ | |||
+ | <code bash> | ||
+ | # remove all old file system information. Not necessary, but I do it just because I can | ||
+ | wipefs -a /dev/sdg | ||
+ | # make this a gpt disk. Will wipe out any other partitioning scheme | ||
+ | parted /dev/sdg mklabel gpt | ||
+ | # make a new partition on optimal sector boundries. This is a primary partition, and starts | ||
+ | # at the beginning of the disk (0%) and goes to the end of the disk (100%) | ||
+ | # I put that in quotes as, from what I've read, the percent symbol does not work well | ||
+ | # within the bash command line | ||
+ | # note, we are not telling it what file system to use, so it defaults to Linux | ||
+ | parted -a optimal /dev/sdg mkpart primary ' | ||
+ | # display the information on the disk | ||
+ | parted /dev/sdg print | ||
+ | # format as ext4, no reserved space, and a disk label marked ' | ||
+ | mkfs.ext4 -m0 -Lbackup /dev/sdg | ||
+ | |||
+ | </ | ||
==== Rapidly wipe multiple hard drives ==== | ==== Rapidly wipe multiple hard drives ==== | ||
Line 13: | Line 36: | ||
# for truly not sensitive information, | # for truly not sensitive information, | ||
- | for drive in a b c d e f g ; do wipefs -a / | + | for drive in a b c d e f g |
+ | do | ||
+ | wipefs -a / | ||
+ | done | ||
# but, to really remove in a way that takes tons of effort to recover, do this also | # but, to really remove in a way that takes tons of effort to recover, do this also | ||
- | for drive in a b c d e f g ; do echo Cleaning sd%drive | + | for drive in a b c |
+ | do | ||
+ | echo Cleaning sd%drive | ||
+ | dd if=/ | ||
+ | done | ||
</ | </ | ||
- | I then realized | + | I had 7 drives to wipe, and this takes about 5 hours per drive, so a total of 35 hours. |
<code bash wipedrives2.sh> | <code bash wipedrives2.sh> | ||
#! / | #! / | ||
- | for drive in a b c d e f g ; do screen dd if=/ | + | for drive in a b c d e f g h |
+ | do | ||
+ | screen | ||
+ | done | ||
</ | </ | ||
- | Note: I have not done the parallel one yet. I'm waiting | + | Basically, we're using a bash for loop to grab all the drive names (I just used the last letter), running screen and immediately detaching the new process after telling it to run //bash -c// and the command after it in quotes |
- | + | ||
- | Haven' | + | |
- | + | ||
- | ==== Check SSL Cert Expiration Date ==== | + | |
- | + | ||
- | Ever wondered when your SMTP SSL Certificates are up for renewal? A quick and dirty way of doing it from the command line was shown at [https://serverfault.com/questions/131627/how-to-inspect-remote-smtp-servers-tls-certificate# | + | |
- | Note: the discussion covered other things, and is well worth a 5 minute read. | + | **Warning**: When SystemRescueCD boots, it tries to assemble any mdadm (software RAID) arrays, and since they are locked, //dd// and //wipefs// won't be able to write to them (maybe). In that case, do the following: |
<code bash> | <code bash> | ||
- | printf ' | + | # find any mdadm volumes running on Linux |
- | openssl s_client -connect smtp.example.com: | + | cat / |
- | openssl x509 -dates -noout | + | # assuming it showed you md127 was running (normal) |
+ | mdadm --stop / | ||
+ | # it should stop the MD array and make the individual drives accessible | ||
</ | </ | ||
+ | |||
==== Rename Server ==== | ==== Rename Server ==== | ||
Line 54: | Line 84: | ||
<code bash> | <code bash> | ||
# change the host name, and the postfix name if that is installed | # change the host name, and the postfix name if that is installed | ||
- | sed -i.old ' | + | sed -i.old ' |
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
/ | / | ||
# update the aliases, if they exist | # update the aliases, if they exist | ||
Line 201: | Line 237: | ||
===== Shell (mainly BASH) ===== | ===== Shell (mainly BASH) ===== | ||
+ | ==== Here Documents ==== | ||
+ | |||
+ | Most unix users are familiar with echo' | ||
+ | |||
+ | A **here document** is a way of having multiple lines processed at one time. In many cases, you can have similar functionality using quotes, but here documents are more robust. | ||
+ | |||
+ | For example, a simple test of a newly built mail system might include creating a file with all of the headers necessary, then passing that to // | ||
+ | |||
+ | <code bash> | ||
+ | sendmail user@example.com << EOF | ||
+ | To: user@example.com | ||
+ | from: root@example.org | ||
+ | Subject: test | ||
+ | |||
+ | This is a test | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | The entire block above is one command. Here is the breakdown. | ||
+ | |||
+ | - //sendmail user@example.com// | ||
+ | - //<<// | ||
+ | - //EOF// is the tag which will mark the end of the text for the here document | ||
+ | - Everything up to the EOF is the actual string to be passed to sendmail | ||
+ | - //EOF// at the end marks the end of the here document. **Note**: there must be no leading or trailing whitespace. The tag must be exactly as entered after the << (case sensitive), and must be the only thing on the final line. | ||
+ | |||
+ | This only touches the surface of here documents. See [[https:// | ||
==== Find files within date range containing text ==== | ==== Find files within date range containing text ==== | ||
Line 374: | Line 437: | ||
* https:// | * https:// | ||
* https:// | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
quickreference/unix.1696794323.txt.gz · Last modified: 2023/10/08 14:45 by rodolico