How to get the available space of $HOME as a variable in shell scripting?Ubuntu server terminal?Is bash scripting the same as shell scripting?Concatenation in Shell Scripting BashShell ScriptingShell Scripting Function questionShell scripting add slashes in file name with spaceShell scripting,Case sensitivity in shell scriptingbash shell scripting errorWhat graphical libraries are available for Bash shell scripting?
Circuitry of TV splitters
How much RAM could one put in a typical 80386 setup?
Why is this code 6.5x slower with optimizations enabled?
Why is "Reports" in sentence down without "The"
Is there really no realistic way for a skeleton monster to move around without magic?
Possibly bubble sort algorithm
What are these boxed doors outside store fronts in New York?
Why is an old chain unsafe?
Can a German sentence have two subjects?
Why are 150k or 200k jobs considered good when there are 300k+ births a month?
Infinite past with a beginning?
Is there a familial term for apples and pears?
If Manufacturer spice model and Datasheet give different values which should I use?
Patience, young "Padovan"
Why has Russell's definition of numbers using equivalence classes been finally abandoned? ( If it has actually been abandoned).
Japan - Plan around max visa duration
Is it possible to make sharp wind that can cut stuff from afar?
A newer friend of my brother's gave him a load of baseball cards that are supposedly extremely valuable. Is this a scam?
XeLaTeX and pdfLaTeX ignore hyphenation
How is it possible for user's password to be changed after storage was encrypted? (on OS X, Android)
Is it tax fraud for an individual to declare non-taxable revenue as taxable income? (US tax laws)
What makes Graph invariants so useful/important?
When blogging recipes, how can I support both readers who want the narrative/journey and ones who want the printer-friendly recipe?
Is Social Media Science Fiction?
How to get the available space of $HOME as a variable in shell scripting?
Ubuntu server terminal?Is bash scripting the same as shell scripting?Concatenation in Shell Scripting BashShell ScriptingShell Scripting Function questionShell scripting add slashes in file name with spaceShell scripting,Case sensitivity in shell scriptingbash shell scripting errorWhat graphical libraries are available for Bash shell scripting?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I am writing a bash script
to install a program for different users.
For that I want to make sure that each user has at least 500Mb
available in their $HOME
. My $HOME
directory looks as follows
jen@ser23:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 2,9G 1,1G 1,7G 40% /
udev 10M 0 10M 0% /dev
tmpfs 13G 826M 12G 7% /run
/dev/sda3 15G 9,8G 4,1G 71% /usr
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/local_disk_1-tmp 3,7G 21M 3,7G 1% /tmp
/dev/mapper/local_disk_1-opt 20G 2,0G 18G 10% /opt
/dev/mapper/local_disk_1-project1 401G 287G 114G 72% /project1
/dev/mapper/local_disk_1-var 3,8G 1,7G 1,7G 50% /var
/dev/mapper/local_disk_1-project2 99G 70G 29G 71% /project2
/dev/mapper/local_disk_1-usr_local 2,0G 3,4M 1,9G 1% /usr/local
nfs4.sf0.ise.fhg.de:/g/6/TSB/Archiv 632T 349T 276T 56% /net/p/600/groupdrives/TSB/Archiv
nfs4.sf0.ise.fhg.de:/home 632T 349T 276T 56% /net/home
tmpfs 6,4G 0 6,4G 0% /run/user/12419
tmpfs 6,4G 4,0K 6,4G 1% /run/user/13471
tmpfs 6,4G 4,0K 6,4G 1% /run/user/9351
tmpfs 6,4G 0 6,4G 0% /run/user/13142
My idea is to use df -h /path/to/home | awk
but I am not sure how I can get the actual available space from df -h
. Any help please? Thanks, Jen.
jen@ser23:~$ df -P /net/home/j/jen
Filesystem 1024-blocks Used Available Capacity Mounted on
nfs4.sf0.dfd.fhg.de:/home 5242880 1026048 4216832 20% /net/home
command-line bash scripts
|
show 7 more comments
I am writing a bash script
to install a program for different users.
For that I want to make sure that each user has at least 500Mb
available in their $HOME
. My $HOME
directory looks as follows
jen@ser23:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 2,9G 1,1G 1,7G 40% /
udev 10M 0 10M 0% /dev
tmpfs 13G 826M 12G 7% /run
/dev/sda3 15G 9,8G 4,1G 71% /usr
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/local_disk_1-tmp 3,7G 21M 3,7G 1% /tmp
/dev/mapper/local_disk_1-opt 20G 2,0G 18G 10% /opt
/dev/mapper/local_disk_1-project1 401G 287G 114G 72% /project1
/dev/mapper/local_disk_1-var 3,8G 1,7G 1,7G 50% /var
/dev/mapper/local_disk_1-project2 99G 70G 29G 71% /project2
/dev/mapper/local_disk_1-usr_local 2,0G 3,4M 1,9G 1% /usr/local
nfs4.sf0.ise.fhg.de:/g/6/TSB/Archiv 632T 349T 276T 56% /net/p/600/groupdrives/TSB/Archiv
nfs4.sf0.ise.fhg.de:/home 632T 349T 276T 56% /net/home
tmpfs 6,4G 0 6,4G 0% /run/user/12419
tmpfs 6,4G 4,0K 6,4G 1% /run/user/13471
tmpfs 6,4G 4,0K 6,4G 1% /run/user/9351
tmpfs 6,4G 0 6,4G 0% /run/user/13142
My idea is to use df -h /path/to/home | awk
but I am not sure how I can get the actual available space from df -h
. Any help please? Thanks, Jen.
jen@ser23:~$ df -P /net/home/j/jen
Filesystem 1024-blocks Used Available Capacity Mounted on
nfs4.sf0.dfd.fhg.de:/home 5242880 1026048 4216832 20% /net/home
command-line bash scripts
1
@EODCraft Staff : Nop! :)
– Jenny
8 hours ago
1
df -P /path/to/home | awk 'NR>1 print $4'
?
– Cyrus
8 hours ago
1
There's no 1,7G. There's at the moment 4216832.
– Cyrus
8 hours ago
1
Ah! I thought I should actually get the space in the partition/dev/sda1 2,9G 1,1G 1,7G 40% /
– Jenny
8 hours ago
1
If you’re on a big shared system, it’s quite possible that individual accounts have quotas, separate from the available mounted storage. For example, at my old institution, you used thediskquota
command to check the available space. You may want to check if an equivalent system exists at your institution.
– nneonneo
5 hours ago
|
show 7 more comments
I am writing a bash script
to install a program for different users.
For that I want to make sure that each user has at least 500Mb
available in their $HOME
. My $HOME
directory looks as follows
jen@ser23:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 2,9G 1,1G 1,7G 40% /
udev 10M 0 10M 0% /dev
tmpfs 13G 826M 12G 7% /run
/dev/sda3 15G 9,8G 4,1G 71% /usr
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/local_disk_1-tmp 3,7G 21M 3,7G 1% /tmp
/dev/mapper/local_disk_1-opt 20G 2,0G 18G 10% /opt
/dev/mapper/local_disk_1-project1 401G 287G 114G 72% /project1
/dev/mapper/local_disk_1-var 3,8G 1,7G 1,7G 50% /var
/dev/mapper/local_disk_1-project2 99G 70G 29G 71% /project2
/dev/mapper/local_disk_1-usr_local 2,0G 3,4M 1,9G 1% /usr/local
nfs4.sf0.ise.fhg.de:/g/6/TSB/Archiv 632T 349T 276T 56% /net/p/600/groupdrives/TSB/Archiv
nfs4.sf0.ise.fhg.de:/home 632T 349T 276T 56% /net/home
tmpfs 6,4G 0 6,4G 0% /run/user/12419
tmpfs 6,4G 4,0K 6,4G 1% /run/user/13471
tmpfs 6,4G 4,0K 6,4G 1% /run/user/9351
tmpfs 6,4G 0 6,4G 0% /run/user/13142
My idea is to use df -h /path/to/home | awk
but I am not sure how I can get the actual available space from df -h
. Any help please? Thanks, Jen.
jen@ser23:~$ df -P /net/home/j/jen
Filesystem 1024-blocks Used Available Capacity Mounted on
nfs4.sf0.dfd.fhg.de:/home 5242880 1026048 4216832 20% /net/home
command-line bash scripts
I am writing a bash script
to install a program for different users.
For that I want to make sure that each user has at least 500Mb
available in their $HOME
. My $HOME
directory looks as follows
jen@ser23:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 2,9G 1,1G 1,7G 40% /
udev 10M 0 10M 0% /dev
tmpfs 13G 826M 12G 7% /run
/dev/sda3 15G 9,8G 4,1G 71% /usr
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/local_disk_1-tmp 3,7G 21M 3,7G 1% /tmp
/dev/mapper/local_disk_1-opt 20G 2,0G 18G 10% /opt
/dev/mapper/local_disk_1-project1 401G 287G 114G 72% /project1
/dev/mapper/local_disk_1-var 3,8G 1,7G 1,7G 50% /var
/dev/mapper/local_disk_1-project2 99G 70G 29G 71% /project2
/dev/mapper/local_disk_1-usr_local 2,0G 3,4M 1,9G 1% /usr/local
nfs4.sf0.ise.fhg.de:/g/6/TSB/Archiv 632T 349T 276T 56% /net/p/600/groupdrives/TSB/Archiv
nfs4.sf0.ise.fhg.de:/home 632T 349T 276T 56% /net/home
tmpfs 6,4G 0 6,4G 0% /run/user/12419
tmpfs 6,4G 4,0K 6,4G 1% /run/user/13471
tmpfs 6,4G 4,0K 6,4G 1% /run/user/9351
tmpfs 6,4G 0 6,4G 0% /run/user/13142
My idea is to use df -h /path/to/home | awk
but I am not sure how I can get the actual available space from df -h
. Any help please? Thanks, Jen.
jen@ser23:~$ df -P /net/home/j/jen
Filesystem 1024-blocks Used Available Capacity Mounted on
nfs4.sf0.dfd.fhg.de:/home 5242880 1026048 4216832 20% /net/home
command-line bash scripts
command-line bash scripts
edited 8 hours ago
Jenny
asked 8 hours ago
JennyJenny
968
968
1
@EODCraft Staff : Nop! :)
– Jenny
8 hours ago
1
df -P /path/to/home | awk 'NR>1 print $4'
?
– Cyrus
8 hours ago
1
There's no 1,7G. There's at the moment 4216832.
– Cyrus
8 hours ago
1
Ah! I thought I should actually get the space in the partition/dev/sda1 2,9G 1,1G 1,7G 40% /
– Jenny
8 hours ago
1
If you’re on a big shared system, it’s quite possible that individual accounts have quotas, separate from the available mounted storage. For example, at my old institution, you used thediskquota
command to check the available space. You may want to check if an equivalent system exists at your institution.
– nneonneo
5 hours ago
|
show 7 more comments
1
@EODCraft Staff : Nop! :)
– Jenny
8 hours ago
1
df -P /path/to/home | awk 'NR>1 print $4'
?
– Cyrus
8 hours ago
1
There's no 1,7G. There's at the moment 4216832.
– Cyrus
8 hours ago
1
Ah! I thought I should actually get the space in the partition/dev/sda1 2,9G 1,1G 1,7G 40% /
– Jenny
8 hours ago
1
If you’re on a big shared system, it’s quite possible that individual accounts have quotas, separate from the available mounted storage. For example, at my old institution, you used thediskquota
command to check the available space. You may want to check if an equivalent system exists at your institution.
– nneonneo
5 hours ago
1
1
@EODCraft Staff : Nop! :)
– Jenny
8 hours ago
@EODCraft Staff : Nop! :)
– Jenny
8 hours ago
1
1
df -P /path/to/home | awk 'NR>1 print $4'
?– Cyrus
8 hours ago
df -P /path/to/home | awk 'NR>1 print $4'
?– Cyrus
8 hours ago
1
1
There's no 1,7G. There's at the moment 4216832.
– Cyrus
8 hours ago
There's no 1,7G. There's at the moment 4216832.
– Cyrus
8 hours ago
1
1
Ah! I thought I should actually get the space in the partition
/dev/sda1 2,9G 1,1G 1,7G 40% /
– Jenny
8 hours ago
Ah! I thought I should actually get the space in the partition
/dev/sda1 2,9G 1,1G 1,7G 40% /
– Jenny
8 hours ago
1
1
If you’re on a big shared system, it’s quite possible that individual accounts have quotas, separate from the available mounted storage. For example, at my old institution, you used the
diskquota
command to check the available space. You may want to check if an equivalent system exists at your institution.– nneonneo
5 hours ago
If you’re on a big shared system, it’s quite possible that individual accounts have quotas, separate from the available mounted storage. For example, at my old institution, you used the
diskquota
command to check the available space. You may want to check if an equivalent system exists at your institution.– nneonneo
5 hours ago
|
show 7 more comments
2 Answers
2
active
oldest
votes
The important point to remember is that df
operates on filesystems, which may be attached to particular folders, and if you specify a path or file, it will resolve to usage of the filesystem on which file/folder resides. So df -P /net/home/j/jen
operates on the filesystem mounted at /net/home
, which is nfs4.sf0.ise.fhg.de
network attached server apparently.
The usage of a directory and all the files requires a recursive solution that will traverse files and directories within particular directory. The tool that you seek then, is du
and in particular du -shx /net/home/user
.
Keypoints (for more read man du):
du
is recursive by default-s
provides summary instead of listing filesizes individually-h
provides human readable output. If you require further processing on data,-b
might be more preferable.-x
is to keepdu
descending into another. For instance, you could have another network server attached to/net/home/user/anotherplace
, so processing that directory is undesirable as it will give incorrect filesystem usage results.
Considering that this is an assignment, further processing and manipulations on output of du
are left to the reader to implement
add a comment |
It looks like you're heading towards a workable solution already in the comments, but I'm going to throw this in:
DFHOME=$( df $HOME | awk 'print $4;' | tail -n 1 )
if [ $DFHOME -lt 500000 ]; then
echo "You don't got enough space!";
fi
I'd recommend not using -h because if the size is small enough, the G will turn to an M and your solution might break.
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "89"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1131935%2fhow-to-get-the-available-space-of-home-as-a-variable-in-shell-scripting%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
The important point to remember is that df
operates on filesystems, which may be attached to particular folders, and if you specify a path or file, it will resolve to usage of the filesystem on which file/folder resides. So df -P /net/home/j/jen
operates on the filesystem mounted at /net/home
, which is nfs4.sf0.ise.fhg.de
network attached server apparently.
The usage of a directory and all the files requires a recursive solution that will traverse files and directories within particular directory. The tool that you seek then, is du
and in particular du -shx /net/home/user
.
Keypoints (for more read man du):
du
is recursive by default-s
provides summary instead of listing filesizes individually-h
provides human readable output. If you require further processing on data,-b
might be more preferable.-x
is to keepdu
descending into another. For instance, you could have another network server attached to/net/home/user/anotherplace
, so processing that directory is undesirable as it will give incorrect filesystem usage results.
Considering that this is an assignment, further processing and manipulations on output of du
are left to the reader to implement
add a comment |
The important point to remember is that df
operates on filesystems, which may be attached to particular folders, and if you specify a path or file, it will resolve to usage of the filesystem on which file/folder resides. So df -P /net/home/j/jen
operates on the filesystem mounted at /net/home
, which is nfs4.sf0.ise.fhg.de
network attached server apparently.
The usage of a directory and all the files requires a recursive solution that will traverse files and directories within particular directory. The tool that you seek then, is du
and in particular du -shx /net/home/user
.
Keypoints (for more read man du):
du
is recursive by default-s
provides summary instead of listing filesizes individually-h
provides human readable output. If you require further processing on data,-b
might be more preferable.-x
is to keepdu
descending into another. For instance, you could have another network server attached to/net/home/user/anotherplace
, so processing that directory is undesirable as it will give incorrect filesystem usage results.
Considering that this is an assignment, further processing and manipulations on output of du
are left to the reader to implement
add a comment |
The important point to remember is that df
operates on filesystems, which may be attached to particular folders, and if you specify a path or file, it will resolve to usage of the filesystem on which file/folder resides. So df -P /net/home/j/jen
operates on the filesystem mounted at /net/home
, which is nfs4.sf0.ise.fhg.de
network attached server apparently.
The usage of a directory and all the files requires a recursive solution that will traverse files and directories within particular directory. The tool that you seek then, is du
and in particular du -shx /net/home/user
.
Keypoints (for more read man du):
du
is recursive by default-s
provides summary instead of listing filesizes individually-h
provides human readable output. If you require further processing on data,-b
might be more preferable.-x
is to keepdu
descending into another. For instance, you could have another network server attached to/net/home/user/anotherplace
, so processing that directory is undesirable as it will give incorrect filesystem usage results.
Considering that this is an assignment, further processing and manipulations on output of du
are left to the reader to implement
The important point to remember is that df
operates on filesystems, which may be attached to particular folders, and if you specify a path or file, it will resolve to usage of the filesystem on which file/folder resides. So df -P /net/home/j/jen
operates on the filesystem mounted at /net/home
, which is nfs4.sf0.ise.fhg.de
network attached server apparently.
The usage of a directory and all the files requires a recursive solution that will traverse files and directories within particular directory. The tool that you seek then, is du
and in particular du -shx /net/home/user
.
Keypoints (for more read man du):
du
is recursive by default-s
provides summary instead of listing filesizes individually-h
provides human readable output. If you require further processing on data,-b
might be more preferable.-x
is to keepdu
descending into another. For instance, you could have another network server attached to/net/home/user/anotherplace
, so processing that directory is undesirable as it will give incorrect filesystem usage results.
Considering that this is an assignment, further processing and manipulations on output of du
are left to the reader to implement
answered 7 hours ago
Sergiy KolodyazhnyySergiy Kolodyazhnyy
75k9155327
75k9155327
add a comment |
add a comment |
It looks like you're heading towards a workable solution already in the comments, but I'm going to throw this in:
DFHOME=$( df $HOME | awk 'print $4;' | tail -n 1 )
if [ $DFHOME -lt 500000 ]; then
echo "You don't got enough space!";
fi
I'd recommend not using -h because if the size is small enough, the G will turn to an M and your solution might break.
add a comment |
It looks like you're heading towards a workable solution already in the comments, but I'm going to throw this in:
DFHOME=$( df $HOME | awk 'print $4;' | tail -n 1 )
if [ $DFHOME -lt 500000 ]; then
echo "You don't got enough space!";
fi
I'd recommend not using -h because if the size is small enough, the G will turn to an M and your solution might break.
add a comment |
It looks like you're heading towards a workable solution already in the comments, but I'm going to throw this in:
DFHOME=$( df $HOME | awk 'print $4;' | tail -n 1 )
if [ $DFHOME -lt 500000 ]; then
echo "You don't got enough space!";
fi
I'd recommend not using -h because if the size is small enough, the G will turn to an M and your solution might break.
It looks like you're heading towards a workable solution already in the comments, but I'm going to throw this in:
DFHOME=$( df $HOME | awk 'print $4;' | tail -n 1 )
if [ $DFHOME -lt 500000 ]; then
echo "You don't got enough space!";
fi
I'd recommend not using -h because if the size is small enough, the G will turn to an M and your solution might break.
edited 8 hours ago
answered 8 hours ago
KarlKarl
215
215
add a comment |
add a comment |
Thanks for contributing an answer to Ask Ubuntu!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1131935%2fhow-to-get-the-available-space-of-home-as-a-variable-in-shell-scripting%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
@EODCraft Staff : Nop! :)
– Jenny
8 hours ago
1
df -P /path/to/home | awk 'NR>1 print $4'
?– Cyrus
8 hours ago
1
There's no 1,7G. There's at the moment 4216832.
– Cyrus
8 hours ago
1
Ah! I thought I should actually get the space in the partition
/dev/sda1 2,9G 1,1G 1,7G 40% /
– Jenny
8 hours ago
1
If you’re on a big shared system, it’s quite possible that individual accounts have quotas, separate from the available mounted storage. For example, at my old institution, you used the
diskquota
command to check the available space. You may want to check if an equivalent system exists at your institution.– nneonneo
5 hours ago