Open main menu

CDOT Wiki β

Changes

OPS245 Scripting Exercises dev

3,619 bytes removed, 20:57, 29 April 2023
no edit summary
</pre>
 
* Create a bash script that will run your other script (hello.bash) twice. Feel free to reuse this prompt for any of the other scripts. You have been provided a template with comments, but missing code. Fill in the missing pieces based on the comments.
<pre>
#!/bin/bash
# Author:
# Date:
# Purpose: Run hello.bash twice
# Usage:
#
 
# Run hello.bash (just like you would execute it from the command line)
 
# Run hello.bash a second time
</pre>
 
* Now do it in python. You have been provided a template with comments, but missing code. Fill in the missing pieces based on the comments.
<pre>
#!/usr/bin/env python3
# Author:
# Date:
# Purpose: Run hello.py twice
# Usage:
#
 
# Import the operating system module
 
# Run hello.py (using the os.system function and passing it the name of the script)
 
# Run hello.py a second time
 
</pre>
* Run this new script from different locations, and see if it always works. Fix it if it doesn't.
* Create a bash script to display the contents of /etc/sysconfig/network-scripts/ifcfg-ens33
** Pipe the output to cat
*** Pipe that output to cat. See if you understand why that doesn't seem to do anything
* Create a bash script which will use cat and grep to find the line with BOOTPROTO in /etc/sysconfig/network-scripts/ifcfg-ens33
** Modify that script so that it doesn't need cat anymore.
* Create a bash script in which you will create a variable called BP.
** Assign to that variable the value BOOTPROTO="dhcp" (the equal sign and quotes are part of the value).
** Use the cut command to retrieve the part between the double-quotes (in this case that's: dhcp).
** Save the result in a variable, and print that variable.
* Combine the two scripts above into one. The script should tell you what the value of BOOTPROTO from /etc/sysconfig/network-scripts/ifcfg-ens33 is.
*Create a python script that will prompt the user for the name of the interface they want to search (e.g. ens33), then prompt them for the parameter they wish to see.
**Store the responses from the user in variables and use them to grep the appropriate file for the parameter the user asked for. Display it's current value.
**Note: As we have not covered conditional statements or loops in python yet, you can assume the user always provides usable responses.
* Use the ls and wc commands to find how many log files there are in /var/log/
** Add a grep command to find how many of a certain type of log file there are (e.g. vmware-network log files)
* Use the history and grep commands to find any command you ran in the past that contained a certain keyword (like .sh or cat)
* Write a bash script which will use the whoami, hostname, date, and lvs commands to create a report.txt file containing all that information.
** Set it up so that the date (in YYYY-MM-DD format) is in the filename of the report, e.g. report-YYYY-MM-DD.txt
* Write a bash script that will ask the user for a process name, will check whether that process is running, and if it is: it will print "The process is running". If it isn't: it will print "The process is not running".
** Modify that script to include the number of processes with that name that are running.
* Write a script that will use a for loop and the cut command to get a list of usernames from the /etc/passwd file and print one username perline.
** For each user: using an if statement check whether the directory /home/thatusername exists and then each line will look like: "user1: home directory does not exist" or "user2: home directory exists".
** Instead of checking for /home/thatusername check for the home directory in the passwd file line for that user.